栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611884.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号