widgets personalizados formularios form fields example avanzados django forms model django-1.5

fields - formularios personalizados django



Cómo personalizar un Django ModelForm (1)

Puede anularlo en el __init__ del __init__ o en su vista:

# whatever you use as user/customer, filter out accounts owned accounts = BankAcount.objects.filter(user=request.user) form = PaymentForm() form.fields[''accounts''].queryset = accounts

Quiero construir un formulario basado en mi modelo de cliente.

En el formulario, el usuario conectado especifica el beneficiario, ingresa un monto y selecciona la cuenta desde la que desea pagar.

Este es el modelo y la forma hasta el momento:

class Payment(models.Model): payee = models.ForeignKey(Customer) amount = models.IntegerField() accounts = models.ManyToManyField(BankAccount) class PaymentForm(forms.ModelForm): class Meta: model = Customer widgets = { ''accounts'': forms.CheckboxSelectMultiple(), }

El problema con este formulario es que genera una casilla de verificación para cada cuenta posible que existe en el sistema, independientemente de si el usuario lo usa o no. Podría haber docenas de tipos de cuentas, mientras que el usuario solo podría tener 3 o 4.

Quiero que el formulario solo ofrezca casillas de verificación para las cuentas que tiene el usuario.

¿Hay alguna manera de hacer esto?