0

我正在为我的网站建立一个部分,允许猎人编写狩猎报告。

在本节中,他们可以从“愿望清单”(他们想猎杀的动物)和“行李清单”(他们猎杀的动物)中进行选择

我已经构建了表单,并且需要使用一些过滤器来仅提取与用户相关的数据

由于 TemplateSyntaxError,我的 forms.py 或其他问题出现了问题。

我想要的基础是“袋子列表”来过滤我的奖杯,用户不必选择自己但已经通过,即用户没有选择菜单。

我的 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']

非常感谢您的帮助。

4

1 回答 1

1

__init__通过首先添加userarg ,您已经覆盖了表单方法的签名。您需要在初始化表单的任何地方进行更改,以确保您在user之前通过request.POST

或者,最好返回从 kwargs 字典中获取的已注释掉的代码user,并删除user方法签名中的引用。

于 2011-01-18T10:00:26.670 回答