结合上面的问题,如何在过滤后改变list_display中展示的字段
时间: 2024-02-03 12:14:51 浏览: 28
可以定义一个方法,将需要展示的字段进行处理后返回,然后将这个方法名添加到`list_display`中。
例如,假设我们有一个名为`Book`的模型,其中有`title`、`author`、`publish_date`和`is_published`等字段,我们想要在`list_display`中展示`title`、`author`和`publish_date`字段,并且将`publish_date`字段格式化为`YYYY-MM-DD`的形式。那么我们可以这样做:
```python
from django.utils import timezone
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'author_name', 'formatted_publish_date')
def author_name(self, obj):
return obj.author.name
def formatted_publish_date(self, obj):
return timezone.localtime(obj.publish_date).strftime('%Y-%m-%d')
author_name.short_description = 'Author'
formatted_publish_date.short_description = 'Publish Date'
admin.site.register(Book, BookAdmin)
```
在上面的代码中,我们定义了两个方法`author_name`和`formatted_publish_date`,分别用于展示`author`和`publish_date`字段。在`author_name`方法中,我们从`obj`参数中获取`Book`对象,然后返回它的`author`字段的`name`属性。在`formatted_publish_date`方法中,我们将`obj`参数中的`publish_date`字段的值转换为本地时间,并将其格式化为`YYYY-MM-DD`的形式。
然后,我们将这两个方法的名称添加到`list_display`中,并将其命名为`Author`和`Publish Date`。这样,我们就可以在`Book`模型的管理页面中看到`title`、`author`和`publish_date`字段,并且`publish_date`字段的格式已经被处理成了`YYYY-MM-DD`的形式。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)