我正在我的博客页面上基本上,博客具有将相同帖子分开的类别,为了这我为类别创建了一个类,并在类别和我的帖子类之间建立了这样的关系:
class Category(models.Model):
name = models.CharField(max_length=256)
def __str__(self):
return self.name
class Post(models.Model):
image = models.ImageField(upload_to='Posts_image')
title = models.CharField(max_length=256)
configure_slug = models.CharField(max_length=512)
slug = models.SlugField(max_length=512,null=True,blank=True)
content = HTMLField('Content')
date = models.DateTimeField(auto_now_add=True)
categories = models.ManyToManyField(Category)
tags = TaggableManager()
publish = models.BooleanField(default=False)
def __str__(self):
return self.title
此后我执行了此功能
def blog_category(request):
res_posts = Post.objects.all()
category = request.POST.get('categories__name')
if category:
res_post = res_post.filter(
Q(categories__name__icontains=category)).distinct()
context = {
'posts':res_posts,
}
return render(request, 'Blog/category-result.html', context)
我告诉你它是如何工作的:当用户单击博客页面中的类别标题之一时此功能开始工作并搜索具有该类别标题的帖子数量,并将它们列出在category-result.html
中但是此功能无法正常工作我认为此代码无法正常工作
category = request.POST.get('categories__name')
request.Post用户单击时不能使用类别__名称
您能帮我解决这个问题吗?
正如您所说的用户clicks,我假设类别标题链接到http://your.site/your-view?categories__name=selected-category
之类的东西,如果是这种情况,则需要使用request.GET
而不是request.POST
。