Django models 更改ForeignKey不需要';不要影响Django的父母

Django models 更改ForeignKey不需要';不要影响Django的父母,django-models,foreign-keys,Django Models,Foreign Keys,我使用的是DJANGO 1.5.1和PostgreSQL 9.3 我有这样一个用户配置文件: class UserProfile(models.Model): GENDER_CHOICES = (('MALE', _('Male')), ('FEMALE', _('Female')), USER_TYPE = (('USER', _('User')), ('SPECIAL', _('Special'))) user = models.OneToOneField(User

我使用的是DJANGO 1.5.1和PostgreSQL 9.3

我有这样一个用户配置文件:

class UserProfile(models.Model):
    GENDER_CHOICES = (('MALE', _('Male')), ('FEMALE', _('Female')),
    USER_TYPE = (('USER', _('User')), ('SPECIAL', _('Special')))

    user = models.OneToOneField(User, primary_key=True)

    gender = models.CharField(max_length=13,
                              default='MALE',
                              choices=GENDER_CHOICES,
                              verbose_name=_('gender'))
    type = models.CharField(max_length=20,
                            default='USER',
                            choices=USER_TYPE,
                            verbose_name=_('type'))
还有一个房子模型:

class House(models.Model):
    name = models.CharField(max_length=30, unique=True)
    owner = models.ForeignKey(User,
                              null=True,
                              blank=True,
                              on_delete=models.SET_NULL)
当我试图修改房屋所有者时,我无法从房屋查询中获取信息集:

我对我的主人做了一些修改:

user.get_profile().type = 'SPECIAL'
user.save()
然后我指定我的房子的主人:

house.owner = user
house.save()
当我试图恢复信息时,“特殊”不会显示,而是显示初始值:

house.objects.get(owner=user).owner.get_profile().type 
'USER'
如果我想做出有效的改变,我必须:

house_profile = house.objects.get(owner=user).owner.get_profile()
house_profile.type = 'SPECIAL'
house_profile.save()
为什么当我改变我的业主简介时,它不会反映在我的房子模型上?
这是相同的用户id,如果我更改我的用户信息,它应该传播到所有相关模型,对吗?

无论何时在相关模型中进行更改,都必须保存该模型的对象,以便反映更改

user_profile = user.get_profile()
user_profile.type = 'SPECIAL'
user_profile.save()
你试过:

house_profile = house.objects.get(owner=user).owner.get_profile()
house_profile.type = 'SPECIAL'
house_profile.save()

这是可行的,因为这里的house\u profile实际上是user\u profile的对象。

这似乎是合乎逻辑的,我没有看到这一点。谢谢