ブログにカテゴリを追加しようとしています。以下のようなモデル クラスがあります。何か問題があれば教えてください。ユーザーがカテゴリをクリックしたときに投稿を表示するにはどうすればよいですか。前もって感謝します。
モデル.py
class Posts(models.Model):
category=models.ForeignKey('indianapp.Category')
slug = models.SlugField(max_length=100, unique=True)
def get_absolute_url(self):
return ('blog_post_detail', (),{'slug':self.slug,})
def save(self,*args, **kwargs):
if not self.slug:
self.slug=sluggify(self.title)
super(Posts,self).save(*args,**kwargs)
class Category(models.Model):
title = models.CharField(max_length=100, db_index=True)
slug = models.SlugField(max_length=100, db_index=True)
def __unicode__(self):
return '%s' % self.title
@permalink
def get_absolute_url(self):
return ('view_by_category', None, { 'slug': self.slug })
Views.py
def view_category(request,slug):
catego=get_object_or_404(Category,slug=slug)
category=Category.objects.all()
posts = Posts.objects.all()
category_posts = []
for post in posts:
if post.category.filter(Posts,slug=slug):
category_posts.append(post)
category = Category.objects.filter(slug=slug)
pagedata.update({'post_list': category_posts})
return render_to_response('listpage.html',pagedata)
Urls.py
url(r'^blog/category/(?P<slug>[^\.]+)','indianapp.views.view_category',name='view_by_category'),
View_category.html
{% block title %}{{ category.title }}{% endblock %}
{% block content %}
{% if post_list %}
<ul>
{% for post in post_list %}
<li><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>There are no posts.</p>
{% endif %}
{% endblock %}