編集:
私にとってより良い解決策は、特にオブジェクトへの他の種類の制御されたアクセスが必要だったので、パーミッション システムを使用することでした。私は現在、Django-guardian を使用して、このようなオブジェクト レベルのアクセス許可を支援しています。
オリジナル:
ユーザーがストーリーをアップロードできるようにすることで、標準の django ブック ガイドを少し拡張し、著者、発行者などを作成しています。ストーリーの著者 (作成者) のみが updateview を使用できるようにしようとしています。リダイレクトされました。
UpdateStory ビューで get_object を変更すると、問題が発生しますが、何らかの理由でトレースバックが StoryForm initを通過します。エラーは'HttpResponseRedirect' object has no attribute '_meta'
ビュー.py
class UpdateStory(LoginRequiredMixin, UpdateView):
model = Story
template_name = 'stories/story_update.html'
form_class = StoryForm
def get_object(self, queryset=None):
obj = super(UpdateStory, self).get_object()
if not obj.author == self.request.user:
return redirect(obj)
return obj
フォーム.py
class StoryForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(StoryForm,self).__init__(*args, **kwargs)
私はまだ新しいので、それは明らかかもしれませんが、数時間探していて困惑しています.