Запретить определенным пользователям добавлять новые теги, django-taggit?

я новичок в django framework, я создаю приложение для блога с нуля и интегрирую django-taggit, чтобы пометить статьи. Что я пытаюсь сделать, так это то, что я хочу, чтобы только определенные пользователи могли добавлять новые теги, а остальные могли использовать только существующие. Это что-то вроде того, что реализует stackoverflow, позволяет пользователям с определенной репутацией добавлять новые теги.

Как мне этого добиться?


person thecreator232    schedule 04.07.2014    source источник


Ответы (1)


Ты мог бы сделать пару вещей. Сначала я бы обязательно реализовал UserProfile какая-то модель, т.е. имеющая атрибут reputation, и тогда у вас есть куча вариантов для выполнения вашей задачи, т.е.

Используйте @user_passes_test, где вы создаете собственную функцию для передачи декоратору.

def at_least_fifty_rep(user): 
    my_profile = ... # get the user profile
    return my_profile.reputation > 50

@user_passes_test(at_least_fifty_rep)
def my_custom_view(request):
    ...

В качестве альтернативы вы также можете реализовать элементы управления в шаблоне.

person C.B.    schedule 04.07.2014