Как использовать django-siteflags для закладки объектов сайта? - PullRequest
0 голосов
/ 28 марта 2019

Пакет здесь и здесь , но я не могу заставить его работать.

Вот мой models.py файл

class Video(models.Model, ModelWithFlag):
    name = models.CharField(max_length=255)

    file = models.FileField(upload_to="static/videos/", null=True, verbose_name="", unique=True)

    def __str__(self):
        return self.name

И файл views.py

def user_bookmarked_video(request, bookmark_id):
    video = get_object_or_404(Video, pk=bookmark_id)
    # Now a user adds this article to his bookmarks.

    video.set_flag(request.user)

Как должны выглядеть urls.py и .html ?

1 Ответ

1 голос
/ 29 марта 2019

Большая часть вопроса не относится к siteflags .

См. " Написание дополнительных представлений ", чтобы получить пример urls.py . Например, это может выглядеть как

path('videos/<int:bookmark_id>/', views.user_bookmarked_video, name='videos_bookmarked'),

Однако ваш bookmark_id вводит в заблуждение, поскольку это идентификатор видео, а не идентификатор закладки. Более того, ваш вид называется user_bookmarked_video () , но это не то, что он делает - он просто устанавливает флаг (закладку) для некоторого видеообъекта.

Если вы планируете использовать это представление просто для установки закладки, вам лучше назвать ее как set_video_bookmark () и перенаправить в конце функции, а не рендеринга html.

Если вы намеревались показать все видео с закладками для текущего пользователя, то нет необходимости принимать bookmark_id аргумент для вашего просмотра и отмечать его при каждом вызове представления.

Ваш html может выглядеть так, как вы хотите, в зависимости от того, что вы хотите увидеть. Например:

<h1>{{ video.name }}</h1>
...