J'ai un problème suivant.Django Inline Model Admin filtre Champ étranger
J'ai 3 modèles:
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)
Je veux faire affaire Administrateur avec Site & image modèles d'administration en ligne:
class SiteInline(admin.StackedInline):
model = Site
extra = 1
class PictureInline(admin.StackedInline):
model = Picture
extra = 1
class DealAdmin(admin.ModelAdmin):
inlines = [
SiteInline,
PictureInline,
]
Ce que je veux faire est quand je suis Sélection du site dans l'image admin il montre seulement les sites que j'appartiens à l'affaire actuelle que je suis en train de regarder (si je suis en train de mettre à jour - ne pas en créer un nouveau).
Je veux que cela fonctionne en administrateur, j'ai passé de nombreuses heures à chercher sur le web mais je n'ai rien trouvé d'utile, merci de nous aider!
je tentais de le faire de cette façon, mais je ne sais pas comment accéder à l'instance de modèle parent pour obtenir l'identifiant de l'accord:
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)
'' 'PictureInline de classe (admin.ModelAdmin):' '' est-ce exact? Le créer et l'enregistrer avec Picture, ne donne aucun résultat, tout en ajoutant '' 'form = PictureInlineForm''' à la' '' class PictureInline (admin.StackedInline): '' 'nous obtenons l'erreur' '' L'image n'a pas d'affaire .''' – raratiru