Python 用Db数据填充Django表单字段数据
我正在尝试用Db对象中的数据预填充表单字段。如何设置表单、视图和模型以用这些数据填充字段 目标是让用户只选择从对象查询的数据。例如,活动中有乐队在演奏,用户从活动中选择他们最喜欢的乐队 我试图在文档中查找form.data,但似乎找不到我要查找的内容Python 用Db数据填充Django表单字段数据,python,django,django-views,django-forms,Python,Django,Django Views,Django Forms,我正在尝试用Db对象中的数据预填充表单字段。如何设置表单、视图和模型以用这些数据填充字段 目标是让用户只选择从对象查询的数据。例如,活动中有乐队在演奏,用户从活动中选择他们最喜欢的乐队 我试图在文档中查找form.data,但似乎找不到我要查找的内容 谢谢 假设您的事件模型有多个键,窗体和视图的布局如下所示: forms.py: class EditEventForm(forms.ModelForm): def __init__(self, *args, **kwargs):
谢谢 假设您的事件模型有多个键,窗体和视图的布局如下所示: forms.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
注意:您需要根据自己的需求调整表单中的queryset获取
views.py:
form = EditEventForm(instance=event)
此外,根据dcrodjer给出的建议,继续阅读一些关于实现的文本通过向表单传递参数,您可以获得更多的自定义
class SelectBandForm(forms.Form):
def __init__(self, event, *args, **kwargs):
super(EditEventForm, self).__init__(*args, **kwargs)
self.fields['bands'] = forms.ModelChoiceField(label="Whats your favorite band?",
empty_label="Select a Band" , querset=Bands.objects.filter(event=event))
那么在你看来,
if request.method =="POST":
form = SelectBandForm(event, request.POST)
if form.is_valid():
#do stuff
else:
form = SelectBandForm(event)
#show it