Django对文章分类,并通过查询特定分类下的所有文章来显示文章列表。
时间: 2024-02-13 11:06:01 浏览: 28
要在Django中对文章进行分类,可以使用模型中的外键关系。例如,可以创建一个名为Category的模型,用于存储文章分类,然后在Article模型中添加一个外键,将每篇文章与其所属的分类相关联。
示例代码如下:
```python
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=100)
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
category = models.ForeignKey(Category, on_delete=models.CASCADE)
```
在上述代码中,Article模型中的category字段是外键,与Category模型相关联。
要查询特定分类下的所有文章,可以使用Django的ORM查询语句。例如,要查询分类名为“技术”的所有文章,可以使用以下代码:
```python
from myapp.models import Article, Category
articles = Article.objects.filter(category__name='技术')
```
在上述代码中,使用了filter()方法过滤出所有category名为“技术”的文章,使用双下划线连接category和name,表示查询category模型中的name字段。
最后,可以使用查询结果来显示文章列表。例如,可以在模板中使用以下代码:
```html
{% for article in articles %}
<div>
<h2>{{ article.title }}</h2>
<p>{{ article.content }}</p>
</div>
{% endfor %}
```
在上述代码中,使用了模板语言循环遍历所有查询结果,显示文章的标题和内容。