私は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)
は、人のモデルがちょうど都市モデルに接続されています。私がする必要があるのは、Nations.labelの値を示す列を管理ビューに追加して検索可能にするために、PersonAdminクラスを設定することです。下の例では、このフィールドcity_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']
[...]
これを行うにはどうすればよいですか?
前もって太もも!
素晴らしい作品です。ありがとうAlasdair! –