Друзья, заранее извиняюсь за глупый вопрос. Django начал изучать совсем недавно, за плечами только туториал с опросником и поверхностное чтение доков. Пробую написать нечто вроде форума, т.е. тема -посты - детальная инфа о посте/обсуждение. Просто ради практики.
В начале написания кода столкнулся с такой проблемой, что при переходе к постам какой-то темы отображается только один пост. На сколько я понимаю, выбирается пост с айдишником , равным айди темы, а не все посты , связанные с темой с данным айди.
Модели:
class Blog (models.Model):
Name = models.CharField (max_length = 50)
description = models.CharField (max_length = 100 , blank = True)
date_created = models.DateTimeField ('create_date')
def __str__(self):
return self.Name
class Post (models.Model):
blog = models.ForeignKey (Blog, on_delete = models.CASCADE)
title = models.CharField (max_length = 50)
text = models.TextField ()
pub_date = models.DateTimeField ('Date_published')
picture = models.ImageField (blank = True)
comment = models.CharField (max_length = 150 , blank = True)
def __str__(self):
return self.title
urls.py:
app_name = 'TDJ'
urlpatterns = [
url(r'^$', views.First_page, name='First'),
url(r'^(?P<blog_id>[0-9]+)/$', views.Posts , name = 'PostList'),
url(r'^(?P<blog_id>[0-9]+)/(?P<post_id>[0-9]+)/$', views.DetailView.as_view(), name = 'Detail'),
]
views.py:
def First_page (request):
List_of_schemas = Blog.objects.order_by('date_created')
context = {'List_of_schemas':List_of_schemas}
return render(request, 'TDJ/first_page.html', context)
def Posts (request, blog_id):
List_of_posts = get_list_or_404(Post,pk=blog_id)
context = {'List_of_posts': List_of_posts}
return render(request, 'TDJ/show_posts.html', context)
template:
{% if List_of_posts %}
<ul>
{% for post in List_of_posts %}
<li>{{post.title}}</li>
{% endfor %}
</ul>
{% else %}
<p>There are no posts yet</p>
{% endif %}
return render(request, 'TDJ/show_posts.html', context)