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?