Django - 将数据附加到不会保存到数据库的模型

时间:2015-04-17 12:42:52

标签: python django model

我需要我的django用户属于Office。

我执行了以下操作来扩展默认用户模型:

class UserProfile(models.Model):
  user = models.OneToOneField(User)
  office = models.ForeignKey('Office')

我的用户模型的post_save信号调用此函数:

def create_user_profile(sender, instance, created, **kwargs):  
  if created:
    profile = UserProfile.objects.create(
      user = instance,
      office = instance.office
    )

我基本上想把办公室附加到“实例”。这意味着当我创建用户时,我会执行以下操作:

user = User(
      office = office,
      username = username,
      email = email,
      password = password
    )

但我收到错误:

  

'office'是此函数的无效关键字参数

这是正常的,因为office不是User模型的字段。 但有没有办法告诉django忽略这个字段,这个字段只是暂时“携带”信息?

1 个答案:

答案 0 :(得分:1)

只需将office设置为简单属性:

user = User(username=username, email=email)
user.set_password(password)
user.office = office
user.save()