Mam następujący problem.Django Inline Model Filtr administracyjny Pole zagraniczne
mam 3 modele:
class Deal(models.Model):
name = models.CharField(max_length=80)
class Site(models.Model):
name = models.CharField(max_length=80)
deal = models.ForeignKey(Deal)
class Picture(models.Model):
title = models.CharField(max_length=80)
deal = models.ForeignKey(Deal)
site = models.ForeignKey(Site)
chcę zrobić Deal Administrator ze strony & Obraz modeli inline admin:
class SiteInline(admin.StackedInline):
model = Site
extra = 1
class PictureInline(admin.StackedInline):
model = Picture
extra = 1
class DealAdmin(admin.ModelAdmin):
inlines = [
SiteInline,
PictureInline,
]
Co chcę zrobić, to gdy jestem wybierając Site in Picture admin wyświetla tylko te strony, które należę do aktualnej oferty, którą przeglądam (jeśli im aktualizuję - nie tworzę nowej).
Chcę, żeby to działało w administracji, spędziłem wiele godzin na wyszukiwaniu w sieci, ale nie mogłem znaleźć nic przydatnego, proszę o pomoc!
starałem się zrobić to w ten sposób, ale nie wiem, jak uzyskać dostęp do instancji modelu rodzic, aby uzyskać identyfikator Deal:
def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
if db_field.name == 'site':
kwargs['queryset'] = Site.objects.filter(deal__id=1)
return super(PictureInline, self).formfield_for_foreignkey(db_field, request=None, **kwargs)
'' 'klasa PictureInline (admin.ModelAdmin):' '' to jest dokładne? Utworzenie go i zarejestrowanie go za pomocą Obrazu, nie daje wyników, a dodanie '' 'form = PictureInlineForm''' do' '' klasy PictureInline (admin.StackedInline): '' 'otrzymujemy błąd' '' Obrazek nie ma umowy .''' – raratiru