在 django 模板中显示 json 数据
Posted
技术标签:
【中文标题】在 django 模板中显示 json 数据【英文标题】:display json data in the django template 【发布时间】:2014-11-12 12:40:49 【问题描述】:我正在尝试使用ajax
保存表单值。我已经这样做了,现在表单数据正在保存到数据库中。我现在想要的是仅在该 django 模板中显示保存的数据而不刷新它。但是在表单提交时显示 json 数据字符串(仅显示结果)
models.py
from django.db import models
class TestModel(models.Model):
title = models.TextField(max_length=255)
views.py
import json
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils import simplejson
from vijayapp.forms import *
from django.http import *
from vijayapp.models import *
def main(request):
return render_to_response('index.html',
'form':TestForm(), RequestContext(request))
def index(request):
if request.method == "POST":
form = TestForm(request.POST)
#message = 'something wrong'
if form.is_valid():
message=request.POST['title'] #model field name
form.save()
dict =
dict['value']=message
#return HttpResponse(json.dumps('message': message))
return HttpResponse(json.dumps(dict), content_type="application/json")
else:
form = TestForm()
return render_to_response('index.html',
'form':TestForm(), RequestContext(request))
index.html
<body>
<h1>Leave a Suggestion Here</h1>
<div class="message"></div>
<div class="hello">
<form action="/forms/" method="POST" id="MY_FORM">% csrf_token %
form.as_p
<input type="submit" value="Submit Feedback" id="button"/>
</form>
<p></p><p></p>
<div id="result">
</div>
</div>
</body>
<script type="text/javascript">
$(document).ready(function()
$("#button").click(function()
e.preventDefault();
var input_string1 = $(".textclass").val();
alert(input_string1);
$.ajax(
url :"forms",
type : "POST",
dataType: "json",
data: $(this).serialize(),
success : function(json)
$('#result').html(json.value);
alert(json['value']);
,
error : function(xhr,errmsg,err)
alert("wrong entry");
);
return false;
);
);
</script>
forms.py
from django.forms import ModelForm
from vijayapp.models import TestModel
from django import forms
class TestForm(ModelForm):
class Meta:
model = TestModel
widgets=
"title":forms.TextInput(attrs='placeholder':'Name','name':'Name','id':'common_id_for_imputfields','class':'textclass'),
【问题讨论】:
【参考方案1】:是的,您将 json 数据作为字符串获取,因此您可以使用 $.parseJson 解析 jquery 代码中的 json。现在您将获得数据的数据结构(字典、元组、列表)。现在您可以显示数据结构(字典、元组、列表)中的每个数据。
【讨论】:
以上是关于在 django 模板中显示 json 数据的主要内容,如果未能解决你的问题,请参考以下文章