gpt4 book ai didi

python - Django 模型属性 : missing 1 required positional argument:

转载 作者:行者123 更新时间:2023-12-02 17:09:45 32 4
gpt4 key购买 nike

模型.py

class Thread(models.Model):

users = models.ManyToManyField(settings.AUTH_USER_MODEL, through="UserThread")

@property
def from_user(self, current_user):
for u in self.users.all():
if u.username != current_user.username:
return u
else:
pass

我的应用程序包含 1 对 1 的对话,我对此属性进行编码以返回线程的相反用户(例如,我正在与之交谈的人)。但是,当我尝试:

u = User.objects.get(pk=1)
t = Thread.objects.get(pk=1)
t.from_user(current_user=u)

我得到的错误是

TypeError: from_user() missing 1 required positional argument: 'current_user'

最佳答案

属性不能带参数。

但没有理由将其作为属性(property)。您将其称为普通方法。删除@property 装饰器。

另请注意,您的代码效率很低。无需查询所有相关用户并进行迭代。如果你只是想获得第一个不是 current_user 的用户,那么直接这样做:

return self.users.exclude(username=current_user.username).first()

关于python - Django 模型属性 : missing 1 required positional argument:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49842200/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com