Задать вопрос
@happiva

Как передать объект в качестве параметра reverse в функцию?

Всем добрый день,
я реализую систему оценки статей
Я пытаюсь вызвать reverse с аргументом объекта, на котором нахожусь и ,указывая self.object в качестве аргумента , прилетает название статьи , хотя primary_key находиться на поле slug модели статьи
А нужен именно сам объект ,чтобы его потом использовать в generic foreign key.

Не понимаю ,как обработать это исключение

Прикрепляю , наверное, наиболее важное
view.py
vote_form_url = reverse(
                    'add_like', args=[str(self.object)]
                )

def add_like(request, obj):
    obj_type = ContentType.objects.get_for_model(obj)
    like, is_created = Like.objects.get_or_create(
        content_type=obj_type, art_ident=obj.slug, author_id=request.user)
    return reverse('art_detail')


models.py
class Like(models.Model):
    author_id = models.ForeignKey(
        MyUser,
        on_delete=models.CASCADE
    )
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    art_ident = models.ForeignKey(
        Art,
        on_delete=models.CASCADE,
    )
    data_vote = models.DateTimeField(
        auto_now=True
    )
    content_object = GenericForeignKey('content_type', 'art_ident')

    objects = VoteManager()


Заранее спасибо
  • Вопрос задан
  • 150 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы