我有一个Day类,其ID是DateField。我有一个Event类,通过ForeignKey链接到该DateField。我想使用像date_hierarchy这样的ModelAdmin功能,但我得到了
<class 'myapp.admin.EventAdmin'>: (admin.E128)
The value of 'date_hierarchy' must be a DateField or DateTimeField.
这是我的models.py文件:
class Day(models.Model):
date = models.DateField(primary_key=True)
def __str__(self):
return str(self.date)
class Event(models.Model):
date = models.ForeignKey(Day, to_field='date', related_name='events')
bullet = models.TextField()
def __str__(self):
return self.bullet[:20]
admin.py有:
class EventAdmin(admin.ModelAdmin):
list_display = ('date', 'bullet')
search_fields = ('bullet',)
list_filter = ('date',)
date_hierarchy = 'date'
ordering = ('-date',)
date_hierarchy不起作用,list_filter不会按日期分解。
有没有办法将Event ForeignKey字段转换为一个被视为DateField的表单?
答案 0 :(得分:0)
我希望这是一个人为的例子,因为单列表在这里没有多大意义。你可以很容易地拥有这个
class Event(models.Model):
date = models.DateField(primary_key=True)
bullet = models.TextField()
假设您遗漏了一些相关字段并且Day模型很重要,事件应该只是:
class Event(models.Model):
date = models.ForeignKey(Day, related_name='events')
bullet = models.TextField()
to_field
在这里并没有用。然后
class EventAdmin(admin.ModelAdmin):
list_display = ('date__date', 'bullet')
search_fields = ('bullet',)
list_filter = ('date__date',)
date_hierarchy = 'date__date'
ordering = ('-date__date',)