tutorial theme template personalizar password python django django-models django-admin

python - theme - django-admin command



Rellene automáticamente el campo created_by con el sitio de administración de Django (3)

Quiero usar la interfaz de administración de Django para una aplicación web muy simple, pero no puedo solucionar un problema que no debería ser tan difícil de resolver ...

Considera lo siguiente:

class Contact(models.Model): name = models.CharField(max_length=250, blank=False) created_by = models.ForeignKey(User, blank=False)

No puedo encontrar una manera de rellenar automáticamente el campo created_by y hacer que el administrador de Django lo sepa. La mayor parte del método que he visto implica sobrecargar el método de guardado del Objeto y pasarlo al usuario de la solicitud. Todos ellos requieren construir sus vistas y / o formularios personalizados.

De manera óptima, el formulario para crear nuevos contactos en el sitio de administración no debe mostrar el campo created_by (que es bastante fácil) y rellenarlo automáticamente con el usuario actual (que parece más difícil de lo que debería).


Debe especificar un default para el campo, en este caso, una llamada de método que obtiene el usuario actual (consulte la documentación de autenticación para obtener el usuario actual).


Realmente quería una solución mejor que las que encontré en otros lugares, así que escribí un poco de middleware: implementación en la pregunta de identificación de usuario de Populate . Mi solución no requiere cambios en ninguna forma o vista.