【发布时间】:2018-03-23 22:06:42
【问题描述】:
我有一个 Django 模型,其 DateTimeField 字段为“created_at”,现在我想在 Django 管理中为该字段添加一个过滤器,但我只需要年份字段而不是默认字段(今天,过去 7 天,本月,今年)。
这是我的模型:
在models.py中
class TaggedArticle(models.Model):
user = models.ForeignKey(User, related_name='tagging')
email = models.EmailField(max_length=255)
category_fit = models.CharField(choices=choices, max_length=255)
article = models.ForeignKey(Article, related_name='articles')
link = models.URLField(max_length=255,)
relevant_feedback = models.TextField(blank=True)
category = models.CharField(max_length=255,)
created_at = models.DateTimeField(default=timezone.now, editable=False)
我尝试将 admin.py 中的 created_at 字段覆盖为:
class TaggedArticle(admin.ModelAdmin):
fields = ['category_fit', 'article', 'link', 'relevant_feedback', 'category', 'user', 'email', 'created_at']
list_display = ['article_id', 'link', 'user', 'created_at']
list_filter = ['user', 'email', 'created_at']
model = Tagged
def created_at(self, obj):
return self.Tagged.created_at.year
admin.site.register(Tagged, TaggedArticle)
但它不起作用。 我怎样才能做到这一点? 请帮帮我! 提前致谢!
【问题讨论】:
标签: python django django-admin django-admin-filters