如何使用从python到javascript的数组?德扬戈

如何使用从python到javascript的数组?德扬戈,python,django,parsing,django-templates,templatetags,Python,Django,Parsing,Django Templates,Templatetags,在你说它的复制品之前!! 我知道如何在视图中使用dump()进行解析,但现在我想接收一个从自定义模板标记到JavaScript的字典数组 这是在我的自定义_template.py中 @register.simple_tag(takes_context = True) def messageRequest(context): request = context['request'] messageData = Message.objects.all() jsMessageD

在你说它的复制品之前!! 我知道如何在视图中使用dump()进行解析,但现在我想接收一个从自定义模板标记到JavaScript的字典数组

这是在我的自定义_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)
对于我的template 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
而且

任何帮助都是感激的,我是一个初学者,所以请尝试给出全面的解释一个例子将真的很有帮助

编辑:这是我的模型-

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)
我在一些方面取得了进展,您可以检查问题

@register.simple_标记(takes_context=True)
def messageRequest(上下文):
请求=上下文['request']
如果request.COOKIES中有“用户”:
currentUser=request.COOKIES.get('user')
messageData=[Message.objects.filter(sender=currentUser.values()]
返回消息数据
您还可以使用
@login\u required
decorator仅允许登录用户访问视图,然后您可以访问
当前用户=请求。用户

在模板中,您应该添加

message_data = {{ message_data | safe }}
您必须在视图操作系统的上下文中传递
message\u data
,以便在模板中访问它


您可以使用vanilla javascript或Jquery执行筛选等操作。

是否有理由检查当前用户的发送方和接收方并将其附加到同一列表中。我的问题是,您是否希望发送者和接收者数据位于同一列表中,并且能否共享您的
消息模型
。事实上,保留发送者的名称很重要,因为它与消息关联。你可以把它当作聊天程序,我需要发件人的名字。实际上,我是否从数组中删除了receiver并不重要,因为它们是作为字典传入的。谢谢,但问题是我如何在javascript中调用它,因为它会给我带来错误。此外,对于过滤器,我需要同时检查这两个选项-当当前用户是发送方或接收方时。我已更新了答案。Upu需要在模板中添加
message_data={{message_data | safe}}
来访问
message_data
我认为您的理解是错误的,我没有选择通过视图传递它,这就是我创建标记的原因。对于使用标记语法来说,就像{%functionname%}我不能使用| safe,否则它会抛出未定义的错误。
message_data = {{ message_data | safe }}