Django如何让视图函数只选择Article的is_active属性等于true的 class ArticleListView(ListView): model = Article template_name = '../templates/index/article_list.html' context_object_name = 'articles' ordering = ['-pub_date']
时间: 2023-06-17 09:03:36 浏览: 52
你可以重写 `get_queryset` 方法来过滤 `is_active=True` 的文章,如下所示:
```python
class ArticleListView(ListView):
model = Article
template_name = '../templates/index/article_list.html'
context_object_name = 'articles'
ordering = ['-pub_date']
def get_queryset(self):
queryset = super().get_queryset()
return queryset.filter(is_active=True)
```
这里我们调用了 `super().get_queryset()` 获取所有文章,然后使用 `filter(is_active=True)` 方法过滤出 `is_active=True` 的文章。这样就可以保证只有 `is_active=True` 的文章被返回给模板。
相关问题
class ArticleListView(ListView): model = Article(is_active=True) template_name = '../templates/index/article_list.html' context_object_name = 'articles' ordering = ['-pub_date']
这是一个 Django 中的 Class-Based View,名为 ArticleListView,它继承了 ListView。ListView 是一个基于模型的通用视图,它可以用来展示一个模型中的多个对象。在这里,我们指定了模型为 Article,且只展示 is_active=True 的文章。
template_name 属性指定了使用的模板文件,即 article_list.html。
context_object_name 属性指定了传递给模板的上下文变量的名称,即 articles。
ordering 属性用来指定文章的排序方式,这里是按照 pub_date 属性降序排列。
解释如下代码:class Tags(models.Model): name = models.CharField(max_length=255, verbose_name="标签", unique=True) class Meta: verbose_name = "标签" verbose_name_plural = "标签" def __str__(self): return self.name
这段代码是定义了一个 Django 的数据模型类 Tags,其继承自 models.Model 类。Tags 类有一个属性 name,它是一个 CharField 类型的字段,最大长度为 255,verbose_name 参数用于指定在 Django 后台管理页面中显示的字段名称,unique=True 表示该字段的值必须唯一。
此外,该类还有一个内部类 Meta,用于设置该模型的元数据信息,verbose_name 和 verbose_name_plural 分别指定了在后台管理页面中该模型的单数和复数名称。
最后,该类还定义了一个 __str__ 方法,该方法返回该对象的 name 属性,主要用于在后台管理页面中展示该对象的字符串表示形式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)