Estoy tratando de entender mejor el administrador de django y, al mismo tiempo, estoy tratando de agregar un campo más al administrador de usuario actual. En models.py que he hechoPara el administrador de django, ¿cómo agrego un campo al modelo de usuario y lo edito en el administrador?
User.add_to_class('new_field', models.BooleanField(default=False))
y en admin.py Tengo el siguiente (con conjuntos de campos, básicamente, sólo copiados de django/contrib/auth/admin.py)
class AdjUserAdmin(UserAdmin):
list_display = UserAdmin.list_display + ('new_field',)
list_filter = UserAdmin.list_filter + ('new_field',)
fieldsets = UserAdmin.fieldsets
fieldsets[1][1]['fields'] = ('first_name','last_name','email','new_field')
el problema es que cuando hago esto me sale el error:
AdjUserAdmin.fieldsets[4][1]['fields']' refers to field 'new_field' that is missing from the form.
he mirado en UserChangeForm, pero parece que se trata de una Ya está instalando correctamente User como modelo. No estoy seguro de por qué new_field
falta en el formulario.
Gracias
En lo que respecta a este código maloliente siendo
Sé que esto es una forma de parches apestoso mono de ir haciendo esto, pero me da la subclasificación cuestiones principalmente para these razones .. si yo podría hacer que funcione de la manera indicada anteriormente, sería feliz ... y tal vez maloliente.
En lo que respecta a la forma recomendada
Soy consciente de la forma recomendada de crear un perfil de usuario, al igual que en situaciones particulares, no veo el mérito en la creación de toda una nueva tabla y tener una llamada adicional a la base de datos cuando todo lo que quiero almacenar es un poco más de información, como is_private
o algo así. Si estoy almacenando mucha más información, entonces estoy de acuerdo, la configuración de un perfil de usuario es preferible.
Hmm .. No sé por qué yo ni º tinta de eso después de usar list_display = UserAdmin.list_display + ('new_field',) .. gracias! – Silfheed
Cuando uso: UserAdmin.list_display + = ('Alias') UserAdmin.list_filter + = ('Alias') UserAdmin.fieldsets + = ('Alias') <-----> hay algo mal, como esto:: (admin.E008) El valor de 'fieldsets [4]' debe ser una lista o tupla. <-----> y i chang a: UserAdmin.list_display + = ('apodo',) UserAdmin.list_filter + = ('apodo',) UserAdmin.fieldsets + = (('apodo', { 'los campos de los: ('nickname',)}),) <-----> este problema se ha ido. –
bovenson