获取JSONField的键和值

崇高的

我想将字典列表的键和值从JSONField传递XHRJSON

内容JSONField如下:

[{'q1':'12'},{'q2':'22'},{'q3':'11'}]

我想像上面的列表一样通过它们。

models.py:

class User1(models.Model):
    history = models.JSONField(blank=True, null=True)

class UserForm(ModelForm):
    class Meta:
        model = User1
        fields = '__all__'

views.py:

class ArticleUpdateView(UpdateView):
    model = User1
    template_name = None
    ...
    def get(self, request, *args, **kwargs):
        if request.headers.get('x-requested-with') == 'XMLHttpRequest':
            if request.headers.get('Get-History') == 'History':
                form = UserForm(request.POST or None)
                self.object = self.get_object()    
                
                data = {
                    'history': str(form.fields['history'])
                }

                return JsonResponse(data, safe=False)

结果:

{"history": "<django.forms.fields.JSONField object at 0x109d03080>"}
Tms91

尝试替代

return JsonResponse(data, safe=False)

与:

return JsonResponse(data['history'])

发生这种情况是因为您正在调用data,这是一个JSON对象。

其实这条线

{"history": "<django.forms.fields.JSONField object at 0x109d03080>"}

表示:具有一个字段的字典,其中的键是历史,其值是来自Django形式的JSON对象。

您真正想要的不是整个字典,而是其键之一的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章