Mam następujące ustawienia administratora, aby móc dodawać/edytować użytkownika i jego profil w tym samym czasie.Jak wymagać wstawiania w Administratorze Django?
class ProfileInline(admin.StackedInline):
"""
Allows profile to be added when creating user
"""
model = Profile
class UserProfileAdmin(admin.ModelAdmin):
"""
Options for the admin interface
"""
inlines = [ProfileInline]
list_display = ['edit_obj', 'name', 'username', 'email', 'is_active',
'last_login', 'delete_obj']
list_display_links = ['username']
list_filter = ['is_active']
fieldsets = (
(None, {
'fields': ('first_name', 'last_name', 'email', 'username',
'is_active', 'is_superuser')}),
)
ordering = ['last_name', 'first_name']
search_fields = ['first_name', 'last_name']
admin.site.register(User, UserProfileAdmin)
Problem polega na tym, że do dodania użytkownika potrzebne są dwa pola w formularzu śródtekstowym profilu. Formularz wbudowany nie jest sprawdzany, chyba że wprowadzono dane wejściowe. Czy mimo to konieczne jest wstawienie linijki, aby nie można było pozostawić pustą?
Jeśli używasz 'GenericInlineModelAdmin', zamień' BaseInlineFormSet' na 'BaseGenericInlineFormSet'. – L42y
Dzięki! Jeśli jednak formularz nie zawiera wymaganych pól, nadal nie będzie sprawdzany i zapisywany, gdy będzie pusty. Naklej małpi formularz za pomocą 'form.has_changed = lambda: True', aby go zachować, mimo że jest pusty. – bouke