
你做不到
LivingRoom.objects.create(user=instance)
因为您有一个
__init__不接受
user参数的方法。
你需要类似的东西
#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)这样做。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)