Как установить значения по умолчанию на сайте администратора django для расширенной модели пользователя?

#python #django #django-models #django-admin

Вопрос:

Я хочу создать модель профиля пользователя как расширение исходной модели пользователя django. Я реализовал модель в models.py:

 class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    solved = models.IntegerField(default=0)
    profile_pic = models.ImageField(upload_to='profile_pic', default="/media/profile_pic/default-profile.jpg")
    school = models.CharField(max_length=200, blank=True, null=True)
 

Однако, когда я создаю нового пользователя на сайте администратора, для поля profile_pic нет значения по умолчанию. Кроме того, хотя в поле «Решение» в форме отображается «0», значение не сохраняется после того, как я нажал «Сохранить».:
введите описание изображения здесь

Я зарегистрировал расширенную пользовательскую модель, подобную этой, в admin.py:

 class UserProfileInline(admin.StackedInline):
    model = UserProfile
    can_delete = False
    verbose_name_plural = 'User Profile'

class UserAdmin(BaseUserAdmin):
    list_display = ('username', 'is_staff', 'solved')
    inlines = (UserProfileInline,)

    def solved(self, obj):
        return obj.userprofile.solved

admin.site.register(User, UserAdmin)
 

Я делаю что-то не так? Используется ли значение по умолчанию только при создании пользователя с помощью python, но не на сайте администратора? Пожалуйста, помогите. Спасибо.

Комментарии:

1. Django будет использовать значение по умолчанию profile_pic во время создания объекта.

2. @JPG хм, но это не похоже на то, когда я создал нового пользователя. Поля profile_pic и solved по — прежнему остаются пустыми.