我正在尝试从数据库中获取一些值并动态打印到xml中。
这是我的模特:
class Somemodel(models.Model):
Party_Id = models.CharField(max_length=500)
Label = models.CharField(max_length=500)
Party_Id = models.CharField(max_length=500)
Name = models.CharField(max_length=500)
这是我的观看功能
def xmlcontent(request):
obj = Somemodel.objects.get(pk=1)
obj.Party_Id = obj.pk
pprint.pprint(obj.DDEX_Party_Id)
return render(request, "content.xml", {"DDID": "obj"},
content_type = "application/xhtml+xml")
我的content.xml看起来像这样
<?xml version="1.0" encoding="UTF-8"?><br/>
<</MessageHeader>MessageHeader><br/>
{% for i in DDID %}<br/>
{{ i.pk }}<br/>
{% endfor %} <br/>
<</MessageHeader>/MessageHeader><br/>
它假设打印Party_id但不打印..我错过了什么?
答案 0 :(得分:0)
一些问题:
"obj"
而不是对象obj
。DDID
将是单个对象,而不是集合或查询集,因为您使用的是.get
。<
,而XML不包含<br />
标记。生成的文件无效。为了省去一些麻烦,只需使用内置的serializers
即可。第一个示例向您展示如何导出XML:
from django.core import serializers
def some_method(request):
XMLSerializer = serializers.get_serializer("xml")
xml_serializer = XMLSerializer()
xml_serializer.serialize(SomeModel.objects.filter(pk=1).values('id'), stream=request)
答案 1 :(得分:0)
使用此行
return render(request, "content.xml", {"DDID": "obj"},
您将字符串"obj"
传递给模板而不是obj
对象。将其更新为
return render(request, "content.xml", {"DDID": obj},
此外obj
不是列表而是单个对象,因此您无法使用{%for i in DDID %} ...