如何在Django admin的“列表显示”中显示外键和多对多字段?
如何在Django admin中显示外键和多对多字段 型号。py:如何在Django admin的“列表显示”中显示外键和多对多字段?,django,django-admin,Django,Django Admin,如何在Django admin中显示外键和多对多字段 型号。py: class Book(models.Model): title = models.CharField(max_length=150, blank=False) class Character(models.Model): book = models.ForeignKey(Book, on_delete=models.CASCADE, related_name='character') name = mo
class Book(models.Model):
title = models.CharField(max_length=150, blank=False)
class Character(models.Model):
book = models.ForeignKey(Book, on_delete=models.CASCADE, related_name='character')
name = models.CharField(max_length=50)
class Author(models.Model):
book = models.ManyToManyField(Book, related_name='author')
name = models.CharField(max_length=50)
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'characters', 'authors')
def characters(self, obj):
???
def authors(self, obj):
???
admin.py:
class Book(models.Model):
title = models.CharField(max_length=150, blank=False)
class Character(models.Model):
book = models.ForeignKey(Book, on_delete=models.CASCADE, related_name='character')
name = models.CharField(max_length=50)
class Author(models.Model):
book = models.ManyToManyField(Book, related_name='author')
name = models.CharField(max_length=50)
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'characters', 'authors')
def characters(self, obj):
???
def authors(self, obj):
???
您可以获取相关的
字符
s/作者
s,然后在逗号分隔的列表中加入名称:
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'characters', 'authors')
def characters(self, obj):
return ', '.join([c.name for c in obj.character.all()])
def authors(self, obj):
return ', '.join([a.name for a in obj.author.all()])
由于
related\u name
是相反的关系,并且可以有多个字符
s/作者
s,因此将这些字符命名为复数是有意义的。如何显示?用逗号分隔的列表还是什么?