tengo un modelo que tiene un campo denominado "estado":cómo modificar las opciones en las páginas de administración - Django
class Foo(models.Model):
...
state = models.IntegerField(choices = STATES)
...
Para cada estado, las posibles opciones son un cierto subconjunto de todos los estados. Por ejemplo:
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
...
Como resultado, cuando los cambios foo.state a un nuevo estado, su conjunto de opciones posibles cambios también.
¿Cómo puedo implementar esta funcionalidad en Admin agregar/cambiar páginas?
Lo que sucede en las vistas de 'agregar' para el administrador, ya que no hay una instancia propia, no puede depender de la instancia para filtrar, sería bueno tener el objeto de solicitud allí –
Sí, este ModelForm debería manejar la ausencia de self.instance y establecer las opciones disponibles iniciales apropiadamente. No sé por qué el objeto de solicitud es relevante, pero usted tiene acceso a él en ModelAdmin.add_view (http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/options.py# L704). –
¿Es posible cambiar las elecciones en el modelo en sí? Después de todo, las elecciones SON inicialmente especificadas en el modelo, al crear el campo. –