2013-06-25 6 views
0

Il semble que cette question a été répondue à plusieurs reprises, mais je suis nouveau à Django et apparemment manquer quelque chose quand j'essaie de travailler à travers les réponses que j'ai trouvées. J'ai 2 modèles, le modèle A est le principal et a une clé étrangère au modèle B. Quand je fais un nouveau modèle A dans l'admin de Django, je veux le menu déroulant pour choisir un modèle B pour montrer seulement le modèle B qui a pas déjà attribué à un modèle A. Quelqu'un peut-il pointer le bon chemin?Django Filtrage Admin Dropdowns

Répondre

0

Vous devez provide a custom form à l'administrateur, en disant à only show a certain queryset pour le champ Modèle B:

from django import forms 
from django.contrib import admin 
from myapp.models import Person 

class ModelAForm(forms.ModelForm): 

    model_b = ModelChoiceField(
     queryset=ModelB.objects.exclude(model_a__isnull=False)) 

    class Meta: 
     model = ModelA 

class ModelAAdmin(admin.ModelAdmin): 
    form = ModelAForm