0

У меня есть пользователи и записи. Я хочу создать декоратор Django, чтобы урезать пользователей, чтобы удалить или обновить другие записи. Но я был в состоянии сделать некоторые.Дизайнер Django для отдыха пользователей для удаления или обновления других записей

я что-то думать, как этот

class EntryUpdate(generic.UpdateView): 
    model = Entry 
    fields = ['...'] 
    .... 

    @user_passes_test(lambda user: current.user.id == entry.user.id) 
    @method_decorator(login_required) 
    def dispatch(self, *args, **kwargs): 
     return super(EntryUpdate, self).dispatch(*args, **kwargs) 

ответ

3

Если вы уже используете Class Based представления, использовать UserPassesTestMixin вместо декоратора

from django.contrib.auth.mixins import UserPassesTestMixin 

class EntryUpdate(UserPassesTestMixin, generic.UpdateView): 
    model = Entry 
    fields = ['...'] 

    def test_func(self): 
     return self.request.user == self.get_object().user 
+0

'г/Pest/Test' ... – Selcuk

+0

Великий он работал !!! но это лучший способ это сделать? есть ли другой способ использования украшений? – jfk83

+0

Если вы используете CBV, это лучший способ сделать, оставьте использование декораторов для функций, основанных на просмотрах –