您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

其他 2022/1/1 18:32:36 有426人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶