我想将字典列表的键和值从JSONField
传递XHR
为JSON
。
内容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>"}
尝试替代
return JsonResponse(data, safe=False)
与:
return JsonResponse(data['history'])
发生这种情况是因为您正在调用data
,这是一个JSON对象。
其实这条线
{"history": "<django.forms.fields.JSONField object at 0x109d03080>"}
表示:具有一个字段的字典,其中的键是历史,其值是来自Django形式的JSON对象。
您真正想要的不是整个字典,而是其键之一的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句