5
Buonasera,Estensione del profilo utente in Django. Admin creazione di utenti
Attualmente sto creando un sito con Django e ho esteso l'utente con un profilo utente. Ho un piccolo problema però. Ecco la mia situazione:
- Ho esteso il profilo utente per aggiungere campi personalizzati.
- Ho aggiunto il modello al modello di amministratore degli utenti, quindi quando aggiungo un utente, posso compilare direttamente i campi per creare il profilo.
- Ora, se non aggiungo QUALSIASI in questi nuovi campi utente personalizzati, nella pagina di aggiunta dell'utente, Django Admin non mi inoltrerà un errore dicendo che questi campi sono nulli (e non suppongono di essere)
- Desidero che venga visualizzato un errore in questa pagina Aggiungi amministratore utente, in modo che gli amministratori DEVONO compilare un profilo quando si aggiunge un nuovo utente.
- TUTTI gli utenti verranno aggiunti nel Pannello di amministrazione.
È possibile? Molte grazie!
in 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)
In model.py
class UserProfile(models.Model):
user = models.OneToOneField(User)
employee_number = models.PositiveIntegerField(unique=True)
def __unicode__(self):
return 'Number'
Bello ha funzionato! Ti spiace spiegare un po 'di più cosa fa il codice? Soprattutto la Meta di classe: parte! Grazie amico – abisson
Inoltre, quale sarebbe la sintassi se volessi che solo uno dei miei campi fosse vuoto_permato = falso? e il resto è vero? – abisson
@abisson 'empty_permitted' è un parametro non documentato che' BaseForm' accetta: quando un modulo inviato non è stato modificato dai suoi dati iniziali, ed è 'empty_permitted' è' True', 'full_clean()' del modulo non verrà eseguito ogni ulteriore convalida. Puoi controllare 'empty_permitted' in' django/forms/forms.py' e 'django/forms/formsets.py'. Se si desidera che uno dei campi non sia vuoto, si può provare a impostare 'empty_permitted = True' per il modulo e' blank = True' per altri campi. – okm