你做不到
LivingRoom.objects.create(user=instance)
你需要类似的东西
#signal function: if a user is created, add control livingroom to the user
def create_control_livingroom(sender, instance, created, **kwargs):
if created:
my_room = LivingRoom()
my_room.user = instance
但是,正如布鲁诺已经说过它,Django的models.Model
子类的初始化最好单独留在家中,还是应该接受*args
和**kwargs
匹配模型的元字段。
因此,遵循更好的原则,您可能应该拥有类似
class LivingRoom(models.Model):
'''Living Room object'''
user = models.OneToOneField(User)
def __init__(self, *args, temp=65, **kwargs):
self.temp = temp
return super().__init__(*args, **kwargs)
注意-如果您没有使用temp
关键字参数(例如)LivingRoom(65)
,则必须开始这样做。LivingRoom(user=instance, temp=66)
或者如果您想使用默认值(65),则只需LivingRoom(user=instance)
这样做。