【发布时间】:2021-07-03 11:04:01
【问题描述】:
很好,我正在做一个个人博客,作为 Web 开发领域的第一个项目,我正在使用 django 进行开发,但是我有一个问题,事实上我找不到按类别过滤文章的方法,我给你看我看过的模特。
我见过一些使用外键的例子,但这导致我的文章只能有一个类别。我知道要按类别获取文章,我必须对类别进行“过滤”,但我什至到了那里,如果有人可以指导我,我将不胜感激
class Article(models.Model):
title = models.CharField(max_length=150, verbose_name='Titulo')
subtitle = models.CharField(max_length=50,default='Máximo 50 carácteres, que no se te olvide' ,verbose_name='subtitulo')
content = RichTextField(verbose_name="Contenido")
image = models.ImageField(default="null", verbose_name="Imagen", upload_to = "media")
user = models.ForeignKey(User, verbose_name="Usuario", on_delete=models.CASCADE, editable=False)
categories = models.ManyToManyField(Category, verbose_name="Categorias")
create_at = models.DateTimeField(auto_now_add=True, verbose_name="Creado el")
update_at = models.DateTimeField(auto_now=True, verbose_name="Editado el")
def __str__(self):
return self.title
class Meta:
verbose_name = ('Articulo')
verbose_name_plural = ('Articulos')
ordering = ['id']
class Category(models.Model):
name = models.CharField(max_length=100, verbose_name="Nombre")
description = models.CharField(max_length=255, verbose_name="Descripcion")
create_at = models.DateTimeField(auto_now_add=True, verbose_name="Creado el")
def __str__(self):
return self.name
class Meta:
verbose_name = ('Categoria')
verbose_name_plural = ('Categorias')
/视图:
def article(request, article_id):
article = get_object_or_404(Article, id=article_id)
articles = Article.objects.all()
categorys = Category.objects.all()
comments = Comentary.objects.filter(post = article_id)
【问题讨论】: