2011-02-11 4 views
0

Utilisation de Django 1.2 J'ai un admin inline empilé avec beaucoup de champ. J'ai besoin de limiter les choix de plusieurs à plusieurs en fonction de l'objet parent pour lequel l'inline existe. Par exemple, j'ai un WidgetPart en ligne qui est sur l'administrateur Widget. Lorsque je suis en train d'éditer un Widget existant, je dois limiter WidgetPart.foo choix en fonction de la logique relative au Wiget en cours d'édition. Je ne peux pas sembler faire ceci avec formfield_for_manytomany, car non seulement il ne fournit aucune information relative obj, mais c'est l'argument request semble toujours être None lorsqu'il est utilisé dans un inline. Y a-t-il un autre moyen?Django empilé inline admin question

Répondre

1

Vous pouvez faire quelque chose comme ceci sur votre classe InlineAdmin:

def formfield_for_manytomany(self, db_field, request, **kwargs): 
    if db_field.name == "foo": 
    kwargs["queryset"] = SomeModel.objects.filter(something=something) 
    return db_field.formfield(**kwargs) 

    return super(YourModel, self).formfield_for_manytomany(db_field, request, **kwargs) 
Questions connexes