我有有兩種型號這樣的Django應用程序:我可以讓django admin中的list_filter只顯示引用的ForeignKeys嗎?
class MyModel(models.Model):
name = models.CharField()
country = models.ForeignKey('Country')
class Country(models.Model):
code2 = models.CharField(max_length=2, primary_key=True)
name = models.CharField()
爲MyModel
管理類看起來是這樣的:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('name', 'country',)
list_filter = ('country',)
admin.site.register(models.MyModel, MyModelAdmin)
的Country
表包含〜250個國家。實際上只有少數幾個國家被一些MyModel
實例引用。
問題是,django admin 中的列表過濾器列出了過濾器面板中的所有國家。列出所有的國家(而不僅僅是那些被實例引用的國家)在這種情況下幾乎違背了列表過濾器的目的。
是否有一些在列表過濾器中只顯示MyModel
引用的國家作爲選擇? (我使用Django 1.3。)
感謝您的回覆。移植到Django 1.4計劃在不久的將來,所以我會推遲到這個問題的任何修復。 – m000
由於'1.8' ... http://stackoverflow.com/a/27836981/953553 – andi
@andi謝謝,我用新的信息更新了答案 – Alasdair