为django 2添加类别的URL

问题描述 投票:1回答:1

我正在我的博客页面上基本上,博客具有将相同帖子分开的类别,为了这我为类别创建了一个类,并在类别和我的帖子类之间建立了这样的关系:

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用户单击时不能使用类别__名称

您能帮我解决这个问题吗?

python django categories django-2.0
1个回答
0
投票

正如您所说的用户clicks,我假设类别标题链接到http://your.site/your-view?categories__name=selected-category之类的东西,如果是这种情况,则需要使用request.GET而不是request.POST

© www.soinside.com 2019 - 2024. All rights reserved.