【发布时间】:2019-09-24 02:42:38
【问题描述】:
假设我有一个包含 3 条记录的查询集。我想使用这个查询集创建一个表单并使用字段的值(比如模型的名称字段)作为表单的字段名称。并且必须有尽可能多的字段,并且该查询集中有许多记录。 请帮忙!
【问题讨论】:
标签: django django-forms django-views
假设我有一个包含 3 条记录的查询集。我想使用这个查询集创建一个表单并使用字段的值(比如模型的名称字段)作为表单的字段名称。并且必须有尽可能多的字段,并且该查询集中有许多记录。 请帮忙!
【问题讨论】:
标签: django django-forms django-views
您可以在表单中动态添加字段。假设您有一个模型 MyModel 和 name 字段。
class MyModel(models.Model):
name = models.CharField()
您可以使用这样的动态字段定义表单
class MyForm(forms.Form):
def __init__(self, *args, **kwargs):
qs = kwargs.pop('qs')
super().__init__(*args, **kwargs)
for instance in qs:
self.fields[instance.name] = forms.CharField() # or whatever field you want
您可以将此表单与查询集一起使用
qs = MyModel.objects.all()
form = MyForm(qs=qs)
【讨论】: