#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
по — прежнему остаются пустыми.