добавить URL для категории с Django 2 - PullRequest
1 голос
/ 15 октября 2019

Я работаю над своей страницей блога, в основном в блоге есть категория для разделения одних и тех же сообщений, для этого я создал класс для категории и установил связь между категорией и моим классом сообщений следующим образом:

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 не может принимать категории__name когда пользователь нажимает

Можете ли вы помочь мне в этой проблеме ???

1 Ответ

0 голосов
/ 15 октября 2019

Как вы сказали, пользователь нажимает Я предполагаю, что заголовок категории ссылается на что-то вроде http://your.site/your-view?categories__name=selected-category, в этом случае вам нужно использовать request.GET, а не request.POST.

...