【发布时间】:2021-03-30 06:11:15
【问题描述】:
我正在尝试创建一个聊天应用程序并遇到此错误。 虽然我以超级用户身份登录,但我收到此错误。
我的模型.py
class Message(models.Model):
author = models.ForeignKey(User, null=True, related_name='author_messages', on_delete=models.CASCADE)
content = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.author.username
def last_10_messages():
return Message.objects.order_by('-timestamp').all()[:10]
我尝试访问它的位置:
for message in messages:
print("message printing")
result.append(self.message_to_json(message))
然后
def message_to_json(self, message):
print("message.id=",message.id)
print(message.author.username)
return {
'id': message.id,
'author': message.author.username,
'content': message.content,
'timestamp': str(message.timestamp)
}
当我打印对象的长度时,我注意到它说 2..idk 为什么因为我还没有添加任何消息。 当循环进行两次时,我注意到第一次打印了用户名,但在第二次循环中引发了错误(尽管我知道为什么它会循环,因为我什至还没有要加载的消息) like here
错误似乎也出现在我的模型类as in here的返回函数中
我读过其他帖子,但他们的错误是不同的......
如果 sum1 cud 提供帮助将不胜感激!
或者我如何以正确的方式定义和访问作者变量
【问题讨论】:
-
.author是None,不管你是否登录,你显然没有保存author来引用User对象。 -
message.author 可以为 null,访问 message.author.username 时您没有处理这种情况
-
@WillemVanOnsem 我将作者推荐给班级中的 User 和 User=get_user_model()
-
@WillemVanOnsem 知道有什么办法可以解决吗?..
标签: django attributeerror