我需要我的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忽略这个字段,这个字段只是暂时“携带”信息?
答案 0 :(得分:1)
只需将office
设置为简单属性:
user = User(username=username, email=email)
user.set_password(password)
user.office = office
user.save()