【问题标题】:How to customize a Django ModelForm如何自定义 Django ModelForm
【发布时间】:2014-08-05 05:30:41
【问题描述】:

我想根据我的客户模型构建一个表单。

在表单中,登录用户指定收款人,输入金额并选择他想要支付的账户。

这是迄今为止的模型和形式:

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(),
        }

此表单的问题在于,它会为系统中存在的每个可能的帐户生成一个复选框,无论用户是否实际使用它。可能有几十种类型的帐户,而用户可能只有 3 或 4 个。

我希望表单只为用户拥有的帐户提供复选框。

有什么办法吗?

【问题讨论】:

标签: django forms model django-1.5


【解决方案1】:

您可以在表单的__init__ 或您的视图中覆盖它:

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

【讨论】:

    猜你喜欢
    • 2020-08-09
    • 2018-10-05
    • 2012-05-23
    • 2019-10-04
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    相关资源
    最近更新 更多