0
我对django程序员有一个问题,应该很容易,但目前我无法弄清楚如何解决。Django admin:list_display/search_fields外键在管理视图中的外键
我有这三种模式(我简化,就像我可以):
class Nations(models.Model):
label = models.CharField(max_length=200)
iso2 = models.CharField(max_length=2, unique=True)
class Cities(models.Model):
label = models.CharField(max_length=200, null=True)
country_code = models.ForeignKey(Nations, to_field='iso2', on_delete=models.SET_NULL, null=True, verbose_name='Nation')
class Person(models.Model):
username = models.CharField(max_length=200, blank=False)
city = models.ForeignKey(Cities, on_delete=models.SET_NULL, null=True, blank=True)
正如你所看到的,人模型只是模型的城市连接。我需要做的是设置PersonAdmin类,以便在管理视图中添加显示Nations.label值的列并使其可搜索。在下面的例子中,我将这个field_country_code__label称为field_country_code__label,只是为了让你弄清楚我的意思(当然,因为在Person模型中没有country_code对象,所以它不起作用)。
class PersonAdmin(admin.ModelAdmin):
list_display = ('id', 'username', 'city', 'city__country_code__label')
ordering = ('username',)
raw_id_fields = ('city',)
search_fields = ['username', 'city__label', 'city__country_code__label']
[...]
我怎样才能让Django做到这一点?
Thanx提前!
它很好用,谢谢阿拉斯代尔! –