Mam aplikacji django, który ma dwa modele tak:Czy mogę zrobić list_filter w django admin, aby wyświetlać tylko odnośniki 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()
Klasa admin MyModel
wygląda następująco:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('name', 'country',)
list_filter = ('country',)
admin.site.register(models.MyModel, MyModelAdmin)
Country
tabela zawiera ~ 250 krajach. Tylko kilka krajów jest rzeczywiście przywoływanych przez pewną instancję MyModel
.
Problem polega na tym, że filtr listy w django admin zawiera listę WSZYSTKICH krajów w panelu filtra. Lista wszystkich krajów (a nie tylko tych, do których odwołuje się instancja) w dużym stopniu pogarsza cel posiadania filtra listy w tym przypadku.
Czy niektóre kraje mogą wyświetlać tylko kraje oznaczone przez MyModel
jako opcje w filtrze listy? (Używam Django 1.3.)
Dzięki za odpowiedź. Migracja do Django 1.4 jest planowana na najbliższą przyszłość, więc odłożę wszelkie poprawki do problemu do tego czasu. – m000
Od "1.8" ... http://stackoverflow.com/a/27836981/953553 – andi
@i dziękuję, zaktualizowałem odpowiedź o nowe informacje – Alasdair