zigen
@zigen

Как использовать Username в качестве slug?

Добрый день.
Подскажите как использовать поле username модели в качестве slug при работе с CBV(например generic.DetailVew)
Я так полагаю, что можно переопределить атрибут slig_field в миксине SingleObjectmixin?
  • Вопрос задан
  • 393 просмотра
Решения вопроса 2
syschel
@syschel
freelance/python/django/backend
zigen: Разобрался

И неверно разобрался.

slug_field [get_slug_field()]

class MyClassDetailView(DetailView):
    model = User
    slug_field = 'username'


Ибо def get_object() используется для других целей "немного". К примеру для НЕ явной фильтрации (образно говоря "только для юзеров мужского пола", "только объектов со статусом - отображать" и так далее). Вы же "slug" передаёте в адресной строке, это явный параметр и для этого идёт банальный и правильный slug_field.
Ответ написан
Комментировать
zigen
@zigen Автор вопроса
Разобрался

def get_object(self):
        return get_object_or_404(User, username=self.kwargs['slug'])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы