如何为Modelforms Django动态选择字段

时间:2018-10-31 14:28:31

标签: django django-models django-forms

我希望表单具有基于条件的某些字段。该模型的预定义如下:

class DumUser(models.Model):
    f1 = models.CharField(max_length=100,null=True)
    f2 = models.CharField(max_length=20,null=True)
    f3 = models.CharField(max_length=3,null=True)
    f4 = models.DateField(null=True)
    f3 = models.CharField(max_length=3, null=True)
    f4 = models.DateField(null=True)

让我们说,创建用户时,DumUser表中将添加一行空值(暂时忽略外键约束。)

此时,对于某些处理,我需要f1,f2和f3 [这是在当前会话期间动态确定的]。数据库已经具有值f1和f2。因此,我希望表单显示可编辑和必填字段f1,f2和f3,其中f1和f2显示数据库中已经存在的值。

如果更改了f1和f2的值,则它们必须与新获得的f3一起反映在数据库中。请帮忙!

1 个答案:

答案 0 :(得分:0)

您可以将'fields'关键字参数传递给modelform_factory函数,该函数设置结果表单将包含的字段。 如果无法使用工厂,则可以在fields之后更改表单实例的__init__属性(该属性在调用super().__init__()之前不存在)。