Имею:
Mov ie Модель
class Movie(models.Model):
title = models.CharField(max_length=255)
synopsis = models.TextField()
author = models.ForeignKey(
get_user_model(),
on_delete=models.CASCADE,
)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('movie_detail', args=[str(self.id)])
Модель обсуждения
class Discussion(models.Model):
title = models.CharField(max_length=255)
body = models.TextField()
author = models.ForeignKey(
get_user_model(),
on_delete=models.CASCADE,
)
date = models.DateTimeField(auto_now_add=True, null=True, blank=True)
movie = models.ForeignKey(
Movie,
on_delete=models.CASCADE,
related_name='discussion',
)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('discussion_detail', args=[str(self.movie.id), str(self.id)])
DiscussionListView
class DiscussionListView(LoginRequiredMixin, ListView):
model = Discussion
template_name = 'discussion_list.html'
login_url = 'login'
И еще я есть список_обсуждений. html
Вот что я хочу:
- Я в URL
/article/1/discussion/
. Целое число 1
равно movie_pk
, потому что URL-адрес определяется как /article/<int:movie_pk>/discussion/
, который в данном случае относится к ключу приоритета модели Mov ie, например, StarWars I. Это страница со списком заголовков обсуждений. связанный с этим mov ie. (Это уже достигнуто) - Есть кнопка «Создать», где, если я нажму на нее, я буду перенаправлен в / article / 1 / обсуждение / new. Там я могу создать новое обсуждение. (Функция, которую я хочу добавить)
Однако: в списке_обсуждений. html нам требуется, чтобы тег url {% url discussion_new %}
имел параметр, поскольку discussion_new
определяется как /article/<int:movie_pk>/discussion/new
Таким образом: как передать movie_pk
с текущего URL-адреса, затем в DiscussionListView, а затем в список_обсуждений шаблона. html?