Django Image не показывает администратора для расширенного пользователя
Я пытаюсь расширить встроенный User, чтобы пользователь мог добавить изображение в свой профиль, однако у меня нет возможности сохранить изображение в админке для моей страницы. Другие расширенные поля отображаются. Я не уверен, почему это...
model.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.TextField(default='', blank='')
last_name = models.TextField(default='', blank='')
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
def user_image_upload_handler(instance, filename):
fpath = pathlib.Path(filename)
new_fname = str(uuid.uuid1()) # uuid1 -> uuid + timestamps
return f"request/{new_fname}{fpath.suffix}"
class ProfilePicture(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(upload_to=user_image_upload_handler, blank=True)
admin.py
from django.contrib import admin
from django.contrib.auth.models import User
from .models import Profile, ProfilePicture
class ProfileAdmin(admin.ModelAdmin):
model = [Profile]
list_display = ['id']
class ProfilePictureAdmin(admin.ModelAdmin):
model = [ProfilePicture]
extra = 10
class UserAdmin(admin.ModelAdmin):
model = ProfileAdmin
model = ProfilePictureAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
from https://docs.djangoproject.com/en/4.0/ref/contrib/auth/. first_name, last_name и email уже являются частью стандартного пользователя django User, поэтому не было необходимости расширять их. Мой accounts/admin.py был просто
from django.contrib import admin
from django.contrib.auth.models import User
from .models import ProfilePicture
class ProfilePictureAdmin(admin.StackedInline):
model = ProfilePicture
extra = 1
class ExtendedUserAdmin(admin.ModelAdmin):
inlines = [ProfilePictureAdmin]
list_display = ['id', 'username', 'first_name']
admin.site.unregister(User)
admin.site.register(User, ExtendedUserAdmin)