【发布时间】:2018-02-03 18:07:49
【问题描述】:
我在大约一个月前开始使用 Django,但遇到了问题。
我创建了一个与用户模型一对一链接的模型
这是我的models.py 文件:
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
# Create your models here.
class UserInfo(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
options = (('individual','Individual'),
('institute',"An institute"),
)
userAs = models.CharField(max_length=100,choices=options)
def __str__(self):
return self.user.username
class Meta:
ordering = ["user"]
@receiver(post_save,sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserInfo.objects.create(user=instance)
...我想从 shell 更改 userAs 的值,但我无法做到。
这是我尝试过的:
In [10]: us = User.objects.get(username="foo")
In [11]: us.userinfo.userAs
Out[11]: 'individual'
In [12]: type(us.userinfo.userAs)
Out[12]: str
In [13]: us.userinfo.userAs = 'institute'
In [14]: us.save()
In [15]: us.userinfo.userAs
Out[15]: 'institute'
In [16]: us = User.objects.get(username="steve04")
In [17]: us.userinfo.userAs
Out[17]: 'individual'
...但我无法更改它。
【问题讨论】: