使用Db数据填充Django表单字段数据

Emi*_*ile 7 python django django-forms django-views

我正在尝试使用来自Db对象的数据预填充表单字段.如何设置表单,视图和模型以使用此数据填充字段?

目标是让用户只选择从对象查询的数据.防爆.一个事件有乐队演奏,用户从活动中选择他们喜欢的乐队.

我尝试查看form.data的文档 - 但似乎无法找到我正在寻找的东西.

谢谢!

Sid*_*rma 4

假设您的事件模型具有作为 Many-2-Many 键的 band,则表单和视图的布局将如下所示:

形式.py:

class EditEventForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(EditEventForm, self).__init__(*args, **kwargs)
        self.fields['bands'].queryset= \
                      Bands.objects.filter(Q(name='band1')|Q(name='band2'))
    class Meta:
        model = Event
Run Code Online (Sandbox Code Playgroud)

注意:您需要根据您的要求调整表单中的查询集获取。

视图.py:

form = EditEventForm(instance=event)
Run Code Online (Sandbox Code Playgroud)

此外,根据 dcrodjer 给出的建议,继续阅读一些有关实现ModelMultipleChoiceField 的文本