【发布时间】:2021-08-10 21:52:40
【问题描述】:
在你说它的重复之前! 我知道如何在视图中使用 dump() 进行解析,但现在我想从自定义模板标签接收到 JavaScript 的字典数组。
这是在我的 custom_template.py 中
@register.simple_tag(takes_context = True)
def messageRequest(context):
request = context['request']
messageData = Message.objects.all()
jsMessageData = []
if 'user' in request.COOKIES:
currentUser = request.COOKIES.get('user')
i = 0
for i in range(messageData):
if messageData[i].receiver == currentUser:
jsMessageData.append(messageData[i])
if messageData[i].sender == currentUser:
jsMessageData.append(messageData[i])
i += 1
print(jsMessageData)
return dumps(jsMessageData)
对于我的模板 index.html,我想在 JavaScript 中使用它来显示消息- 我试过这个
messageData = Json.parse("{% messageRequest %}");
// i want to store it as array
// throws error "'QuerySet' object cannot be interpreted as an integer" when looping through it
还有,
messageData = Json.parse("{% messageRequest|escapejs %}");
// i read this somewhere and it works fine when array is passed through render request but here it gives error as it considers escapejs as part of block tag.
感谢任何帮助,我是初学者,所以请尝试给出全面的解释,一个示例将非常有帮助。
编辑:这是我的模型-
class Message(models.Model):
sender = models.CharField(max_length=100)
receiver = models.CharField(max_length=100)
message = models.CharField(max_length=100)
time = models.CharField(max_length=100, null=True)
def __str__(self):
return (self.sender + '-' + self.receiver)
我在一些事情上取得了进步,你可以检查问题here
【问题讨论】:
-
是否有理由检查当前用户的发送者和接收者并将其附加到同一个列表中。我的问题是你想要发送者和接收者数据在同一个列表中吗,你能分享你的
Message Model吗 -
实际上保留发件人的姓名很重要,因为它与邮件相关联。您可以将其视为我需要发件人姓名的聊天应用程序。如果我从数组中删除接收器实际上并不重要,因为它们是作为字典传入的
标签: python django parsing django-templates templatetags