Considere usar el administrador de Django, pero con sus propios widgets hechos a mano para campos particulares. Puede crear partes de formulario sofisticadas y decirle al administrador que use su código para las entradas y pantallas de cualquier campo específico, o todos los campos de un tipo.
Jannis ha hecho algunas cosas interesantes, y su obra se muestra lo fácil que es: http://jannisleidel.com/2008/11/wysiwym-editor-widget-django-admin-interface/
Un proyecto que estoy trabajando en recientemente incorporado un selector de tiempo que utiliza menús desplegables para las distintas partes del tiempo , (h, m, s) Otro campo indicaría qué días de la semana eran recurrentes ... usaría 7 casillas de verificación para los días de la semana y las almacenaría en la base de datos como un datautil.rruleset en escabeche. Luego, solo da sugerencias de administración sobre qué widgets usar para los diversos campos.
Se trata de definir su clase de datos, su propio widget que subclasifica formularios. Widget, su propio campo que forma subclases. Campo y modelo. Campo también. Cada una de las tres clases es agradable, simple y limpia, y es responsable de una transición de la base de datos al Modelo, del Modelo al Widget y de vuelta a través de esos dos pasos. Es realmente una cosa de belleza.
Los campos que cree serán una de las propiedades intelectuales más reutilizables y sofisticadas que pueda acumular ... y no tiene que escribir su propio administrador desde cero.
Estoy picando (el TypeError que obtendrías sería bastante informativo), pero quieres usar 'request.user.is_staff' - sin parens. Es un atributo, no un método. – AdamKG
Lo siento, fuerza de hábito. Trabajo como Desarrollador Java, donde siempre usas getters y setters por razones de encapsulación. – Powerlord