假设我有两个模型。
我想使程序模型中的主题字段出现在UserProgramAdmin中。
最好的办法是什么?
class Program(models.Model):
name = models.CharField(max_length=15, blank=False)
summary = models.CharField(max_length=200, blank=True)
subject = models.ManyToManyField(Subject, related_name='all_subjects')
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True, editable=False)
updated_at = models.DateTimeField(auto_now=True, editable=False)
def __str__(self) -> str:
return self.name
class UserProgram(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
)
program = models.ForeignKey(
Program,
on_delete=models.CASCADE,
)
is_active = models.BooleanField(default=True)
is_finish = models.BooleanField(default=False, editable=False)
/admin.py
class UserProgramAdmin(admin.ModelAdmin):
list_display = ('user', 'program' , 'is_active', 'is_finish')
2条答案
按热度按时间hs1ihplo1#
您应该在
UserProgram
上定义一个方法,然后在UserProgramAdmin
list_display属性中调用它models.py
admin.py
vqlkdk9b2#
最好的方法是在
__str__
inProgram
字段中显示subject
,如下所示:然后
Program
的主题显示在UserProgram
的admin中。