У меня есть следующие моделиНевозможно обновить Django 1.9 BooleanField
class UserProfile(models.Model):
user = models.OneToOneField(User, related_name='profile')
force_password_change = models.BooleanField(default=False)
По некоторым причинам я не могу изменить BooleanField на всех. Я хотел бы сделать это в представлении без модельной формы. Вот результат, который я получаю из командной строки Django.
>>> new_user = User.objects.get(username="bob")
>>> new_user
<User: bob>
>>> type(new_user)
<class 'django.contrib.auth.models.User'>
>>> new_user.profile
<UserProfile: bob>
>>> type(new_user.profile)
<class 'accounts.models.UserProfile'>
>>> new_user.profile.force_password_change
False
>>> new_user.profile.force_password_change = True
>>> new_user.save()
>>> new_user.profile.force_password_change
False
>>>
Итак, что мне здесь не хватает? Я уверен, что это что-то глупое, но любая помощь будет отличной.
UPDATE:
Тот же вопрос, если обновить поле профиля.
>>> new_user.profile.force_password_change
False
>>> new_user.profile.force_password_change = True
>>> new_user.profile.save()
>>> new_user.profile.force_password_change
False
>>>
UPDATE 2:
Пробовал это также:
>>>
>>> new_user.profile.force_password_change = True
>>> new_user.profile.save()
>>> new_user = User.objects.get(pk=new_user.pk)
>>> new_user.profile.force_password_change
False
>>>
Я предполагаю, что последний бит полезной информации, которую я могу предоставить то, что я могу полностью изменить поле force_password_change через панель администратора. Это похоже на то, что действие save не происходит, когда я пытаюсь user.profile.save()? Но я не получаю никаких ошибок, которые я замечаю.
Вы должны сохранить 'new_user.profile' ... – thebjorn
Nope. Не работает. >>> new_user.profile.force_password_change Ложные >>> new_user.profile.force_password_change = True >>> new_user.profile.save() >>> new_user.profile.force_password_change Ложные >>> – RG5
обновление вашего вопрос, не помещайте код в комментарии. – thebjorn