Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django表单不接受请求。用户_Python_Django_Django Forms - Fatal编程技术网

Python django表单不接受请求。用户

Python django表单不接受请求。用户,python,django,django-forms,Python,Django,Django Forms,我正在尝试访问request.user或获取当前登录用户,以便按用户筛选内容,即仅按登录用户获取奖杯或行李清单 我的表单包含如下所示的混合或元素。 class HuntingReportForm(ModelForm): date_travel_started = forms.DateField(widget=extras.SelectDateWidget(years=range(1970,2012))) date_travel_ended = forms.DateField(wi

我正在尝试访问request.user或获取当前登录用户,以便按用户筛选内容,即仅按登录用户获取奖杯或行李清单

我的表单包含如下所示的混合或元素。

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, *args, **kwargs):
        user = kwargs.pop('user', None)
        self.validate = kwargs.pop('validate', False)
        super(HuntingReportForm, self).__init__(*args, **kwargs)

        self.fields['bag_list'].queryset = Trophies.objects.filter(user = self.user)
        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']
任何帮助都将不胜感激

Traceback:
File "/Library/Python/2.6/site-packages/django/core/handlers/base.py" in get_response
  99.                     response = callback(request, *callback_args, **callback_kwargs)
File "/Library/Python/2.6/site-packages/django/contrib/auth/decorators.py" in __call__
  78.             return self.view_func(request, *args, **kwargs)
File "/Users/ApPeL/Sites/Django/omu2/../omu2/hunting_report/views.py" in create
  56.         form = HuntingReportForm(initial={'me':request.user})
File "/Users/ApPeL/Sites/Django/omu2/hunting_report/forms.py" in __init__
  31.         self.fields['bag_list'].queryset = Trophies.objects.filter(user = self.user)

Exception Type: AttributeError at /hunting-reports/new/
Exception Value: 'HuntingReportForm' object has no attribute 'user'

如果您使用
HuntingReportFrom(user=request.user)
初始化表单,这应该可以:

 def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user', None)
        self.validate = kwargs.pop('validate', False)
        super(HuntingReportForm, self).__init__(*args, **kwargs)
        self.fields['bag_list'].queryset = Trophies.objects.filter(user = self.user)

那么问题又是什么呢?我想通过下面的一行访问登录的用户self.fields['bag_list'].queryset=Trophies.objects.filter(user=user)如果你得到了一个额外的,你可以发布它吗?或者告诉我们问题出在哪里?此外,我认为在大多数情况下,将用户存储在
user
,而不是
self.user
中是有意义的,然后您也可以在其他形式的方法中使用它……等等,您已经排除了
user
,但您仍然想使用它?@Ignacio-是,我已将该用户排除在外,因为我不希望该用户显示在表单中或通过验证。感谢更新,尽管这些更改现在会导致表单无法验证该特定字段,但如果用户选择某个项,它只会抛出以下验证错误。请选择有效选项,13(选项值)不是有效选项