Chcę tylko dodać datę subskrypcji na liście użytkowników w witrynie administracyjnej Django CRUD. Jak mogę to zrobić?Jak dostosować stronę auth.User Admin w Django CRUD?
Dziękuję za pomoc
Chcę tylko dodać datę subskrypcji na liście użytkowników w witrynie administracyjnej Django CRUD. Jak mogę to zrobić?Jak dostosować stronę auth.User Admin w Django CRUD?
Dziękuję za pomoc
I wreszcie zrobił tak w moim pliku admin.py:
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
UserAdmin.list_display = ('email', 'first_name', 'last_name', 'is_active', 'date_joined', 'is_staff')
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
Zakładając, że klasa użytkownika jest User
i data field subskrypcja jest , to co trzeba dodać na własną admin.py
class UserAdmin(admin.ModelAdmin):
list_display = ('subscription_date',)
admin.site.register(User, UserAdmin)
ten może pracować nawet z auth.User Buildin? – Natim
Powinno to odziedziczyć po wbudowanym UserAdmin, w przeciwnym razie tracisz wszystkie pozostałe dostosowania. Musisz też wyrejestrować wbudowaną rejestrację; Odpowiedź Natima ma właściwy kod. –
Innym sposobem na to jest rozszerzenie klasy UserAdmin.
Można również utworzyć funkcję umieścić na list_display
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class CustomUserAdmin(UserAdmin):
def __init__(self, *args, **kwargs):
super(UserAdmin,self).__init__(*args, **kwargs)
UserAdmin.list_display = list(UserAdmin.list_display) + ['date_joined', 'some_function']
# Function to count objects of each user from another Model (where user is FK)
def some_function(self, obj):
return obj.another_model_set.count()
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
Czy mogę wykonać następujące czynności (bez '__init__'), czy jest z tym jakiś problem ? 'class CustomUserAdmin (UserAdmin): list_display = list (UserAdmin.list_display) + ['date_joined'] – jdm
Możemy również rozszerzyć UserAdmin zamiast dynamicznie go modyfikować! – Natim
Aby to wyjaśnić, należy go dodać do głównego pliku administracyjnego administratora witryny. –
Czy mogę zapytać, co masz na myśli przez najwyższy poziom? –