__init __()得到了意外的关键字参数'user'

__init __()得到了意外的关键字参数'user',第1张

__init __()得到了意外的关键字参数'user'

你做不到

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)
这样做。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5618007.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存