私はrequest.userにアクセスしようとしています。つまり、ログインしているユーザがトロフィーまたはbag_listを取得するだけで、コンテンツをフィルタリングすることができます。djangoフォームは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']
助けてください。あなたはHuntingReportFrom(user=request.user)
でフォームを初期化する場合は
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'
そこで問題は、再び何ですか? –
ログインしたユーザーにアクセスするには、次の行が必要です。 ### self.fields ['bag_list']。queryset = Trophies.objects.filter(user = user) – ApPeL
あなたが興奮しているなら、それを投稿することはできますか?問題が何であるか教えてください。さらに、私はほとんどの場合、ユーザを 'user'に保存するのは理にかなっていると思いますが、' self.user'には他のフォームメソッドでも使うことができます... –