J'ai un modèle qui a un champ nommé « Etat »:comment modifier les choix sur les pages d'administration - django
class Foo(models.Model):
...
state = models.IntegerField(choices = STATES)
...
Pour chaque état, les choix possibles sont un sous-ensemble de tous les États. Par exemple:
if foo.state == STATES.OPEN: #if foo is open, possible states are CLOSED, CANCELED
...
if foo.state == STATES.PENDING: #if foo is pending, possible states are OPEN,CANCELED
...
En conséquence, lorsque des changements de foo.state à un nouvel état, son ensemble de choix possibles change également. Comment puis-je implémenter cette fonctionnalité sur les pages Admin add/change?
Que se passe-t-il sur les vues 'add' pour l'admin, puisqu'il n'y a pas self.instance, vous ne pouvez pas dépendre de l'instance pour le filtrage, il serait bien d'avoir l'objet request là –
Oui, ce ModelForm devrait gérer l'absence d'auto-instance et de définir correctement les choix initiaux disponibles. Je ne sais pas pourquoi l'objet de requête est pertinent, mais vous y avez accès dans ModelAdmin.add_view (http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/options.py# L704). –
Est-il possible de changer les choix dans le modèle lui-même? Après tout, les choix sont initialement spécifiés dans le modèle, lors de la création du champ. –