5
Buenas tardes,Extender el perfil de usuario en Django. Creación de usuarios de administrador
Actualmente estoy creando un sitio con Django y extendí al usuario con un perfil de usuario. Aunque tengo un pequeño problema. Aquí está mi situación:
- Amplié el perfil del usuario para agregar campos personalizados.
- Agregué el modelo al Modelo de administración de usuarios, así que cuando agrego un usuario, puedo completar los campos directamente para crear el perfil.
- Ahora, si no agrego NADA en estos nuevos campos de usuario personalizados, en la página de agregar usuarios, Django Admin no me lanzará un error diciendo que estos campos son nulos (y no se supone que sean)
- Quiero que me arroje un error en esta página de Agregar administrador de usuario, por lo que los administradores TENDRÁN que completar un perfil cuando agreguen un nuevo usuario.
- TODOS los usuarios se agregarán en el Panel de administración.
¿Esto es posible? ¡Muchas gracias!
en admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
from django.contrib.auth.models import User
from accounts.models import UserProfile
class UserProfileInline(admin.TabularInline):
model = UserProfile
class UserAdmin(DjangoUserAdmin):
inlines = [ UserProfileInline,]
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
En model.py
class UserProfile(models.Model):
user = models.OneToOneField(User)
employee_number = models.PositiveIntegerField(unique=True)
def __unicode__(self):
return 'Number'
¡Funcionó! ¿Te importa explicar un poco más lo que hace el código? Especialmente el Class Meta: ¡parte! Gracias amigo – abisson
Además, ¿cuál sería la sintaxis si quisiera tener solo uno de mis campos para estar vacío_permitido = falso? y el resto es verdad? – abisson
@abisson 'empty_permitted' es un parámetro no documentado que' BaseForm' acepta: cuando un formulario enviado no ha sido cambiado desde sus datos iniciales, y 'empty_permitted' es' True', 'full_clean()' del formulario no funcionará cualquier validación adicional. Puede verificar 'empty_permitted' en' django/forms/forms.py' y 'django/forms/formsets.py'. Si desea que uno de los campos no esté vacío, puede intentar establecer 'empty_permitted = True' para el formulario y' blank = True' para otros campos. – okm