Проверка владения объектом в Django UpdateView
РЕДАКТИРОВАТЬ:
Лучшим решением для меня было просто использовать систему разрешений, тем более что мне были нужны другие типы контролируемого доступа к объектам. Теперь я использую Django-guardian, чтобы помочь с такими разрешениями на уровне объекта, как это.
Оригинал: I»
Я немного расширяю стандартное руководство по книгам на django, позволяя пользователям загружать истории, а также иметь автора, издателя и т. д.я пытаюсь разрешить авторам (создателям) истории использовать обзор обновлений, а другие пользователи перенаправляются.
Изменение get_object в представлении UpdateStory отключило его, но трассировка проходит через мою StoryFormв этом по какой-то причине. Ошибка'HttpResponseRedirect' object has no attribute '_meta'
views.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
forms.pyI»
class StoryForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(StoryForm,self).__init__(*args, **kwargs)
Я все еще новичок, так что это может быть очевидно, но яискал пару часов и яЯ в тупике.