Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';t更新Django 1.9 BooleanField_Python_Django - Fatal编程技术网

Python Can';t更新Django 1.9 BooleanField

Python Can';t更新Django 1.9 BooleanField,python,django,Python,Django,我有下面的型号 class UserProfile(models.Model): user = models.OneToOneField(User, related_name='profile') force_password_change = models.BooleanField(default=False) 由于某种原因,我根本无法改变布尔场。我想这样做是在一个没有模型形式的看法。这是我从Django命令行得到的输出 >>> new_user = Us

我有下面的型号

class UserProfile(models.Model):

    user = models.OneToOneField(User, related_name='profile')
    force_password_change = models.BooleanField(default=False)
由于某种原因,我根本无法改变布尔场。我想这样做是在一个没有模型形式的看法。这是我从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
>>>
更新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字段。这就像我尝试user.profile.save()时没有执行保存操作一样?但是我没有发现任何错误。

您是否尝试过直接保存UserProfile对象

p = UserProfile.objects.get(user=new_user)
p.force_change_password = True
p.save()

print new_user.profile.force_change_password

请原谅我的简短。。。我在电话上打这个

您必须保存
new\u user.profile
…否。不起作用。>>>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>>更新您的问题,不要在注释中添加代码。好的,我更新了它。谢谢我还能提供什么帮助?谢谢!这很有效。你知道为什么它不起作用吗?我认为用
p=new_user.profile
替换我的第一行也应该起作用(但是我不能在手机上重复检查)。我认为文档的这一部分,特别是最后两段,可能会有所帮助-扩展现有的用户模型。
p = UserProfile.objects.get(user=new_user)
p.force_change_password = True
p.save()

print new_user.profile.force_change_password