我正在为我的网站建立一个部分,允许猎人撰写狩猎报告。
在本节中,他们可以选择'愿望清单'(他们想要捕捉的动物)和'行李清单'(他们猎杀的动物)
我已经构建了表单,需要使用一些过滤器来提取仅用户相关数据。
由于TemplateSyntaxError,我遇到了form.py或其他问题。
我想要的基础是“袋子列表”来过滤我的奖杯,并且用户不必选择自己但已经通过,即用户没有选择菜单
my forms.py看起来像这样
class HuntingReportForm(ModelForm):
date_travel_started = forms.DateField(widget=extras.SelectDateWidget(years=range(1970,2012)))
date_travel_ended = forms.DateField(widget=extras.SelectDateWidget(years=range(1970,2012)))
wish_list = forms.ModelMultipleChoiceField(queryset=Specie.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False), required=False)
bag_list = forms.ModelMultipleChoiceField(queryset=Trophies.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False), required=False)
class Meta:
model = HuntingReport
#exclude = ['user',]
def __init__(self, user, *args, **kwargs):
#self.user = kwargs.pop('user', None)
self.validate = kwargs.pop('validate', False)
super(HuntingReportForm, self).__init__(*args, **kwargs)
self.fields['bag_list'] = forms.ModelMultipleChoiceField(queryset=Trophies.objects.filter(user = user), widget=FilteredSelectMultiple("verbose name", is_stacked=False), required=False)
users = User.objects.filter(userprofile__outfitter=True)
self.fields['outfitter'].choices = [('', '')] + [(user.pk, user.get_full_name()) for user in users]
self.fields.keyOrder = ['title', 'date_travel_started', 'date_travel_ended', 'outfitter', 'wish_list', 'bag_list','report', 'user']
非常感谢您的帮助。
答案 0 :(得分:1)
您已通过首先添加__init__
arg来覆盖表单user
方法的签名。您需要在初始化表单的任何位置进行更改,以确保在user
之前传递request.POST
。
或者,最好还是返回您从kwargs dict中获取user
的已注释掉的代码,并删除方法签名中对user
的引用。