关于django中的for循环已经有很多问题+答案,但没有一个解决方案对我有用,所以必定存在根本性的错误。
我在python / json(试过两个)中有一个字典,我想循环并打印。
执行以下操作为每个字符打印一个新行
{% for item in data.dict %}
<p>{{item}}</p>
{% endfor %}
这样的东西可以打印
{
'
N
o
d
e
'
:
以下代码直接打印
{% for key, values in data.dict.items %}
<p>{{key}}</p>
{% endfor %}
数据是我注册模型的名称,对象是其变量之一。 在我的Views.py中,我有类似的东西:
Data.objects.create(
dict=theDictIAmPassing
}.save
修改
models.py
from django.db import models
class Data(models.Model):
dict1= models.TextField()
dict2 = models.TextField()
dict3 = models.TextField()
dict4 = models.TextField()
views.py
def add(request):
if request.method == 'POST':
form = EntryForm(request.POST)
if form.is_valid():
ProjectName = form.cleaned_data['ProjectName']
date = form.cleaned_data['date']
folder = form.cleaned_data['folder']
description = form.cleaned_data['description']
myprog = program.program(folder)
createMetrics(myprog)
Entry.objects.create(
ProjectName=ProjectName,
date=date,
folder=folder,
description=description
).save()
return HttpResponseRedirect('/')
else:
form = EntryForm()
return render(request, 'myApp/form.html', {'form': form})
def createMetrics(myprog):
Metrics.objects.create(
dict1=myprog.getDict1(),
dict2=myprog.getDict2(),
dict3=myprog.getDict3(),
dict4=myprog.getDict4()
).save()
答案 0 :(得分:1)
在https://stackoverflow.com/a/7469287/7761401
找到解决方案我需要重写我的数据模型。 Textfield(我之所以使用它是因为我找不到其他合适的东西)不适合字典类型。而是安装django-picklefield并将类型更改为PickledObjectField
from picklefield.fields import PickledObjectField
class Data(models.Model):
dict1 = PickledObjectField()
dict2 = PickledObjectField()
dict3 = PickledObjectField()
dict4 = PickledObjectField()