【问题标题】:display json data in the django template在 django 模板中显示 json 数据
【发布时间】: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'}),


                  }  

【问题讨论】:

    标签: ajax json django forms model


    【解决方案1】:

    是的,您将 json 数据作为字符串获取,因此您可以使用 $.parseJson 解析 jquery 代码中的 json。现在您将获得数据的数据结构(字典、元组、列表)。现在您可以显示数据结构(字典、元组、列表)中的每个数据。

    【讨论】:

      猜你喜欢
      • 2012-03-18
      • 2021-10-08
      • 2016-12-24
      • 2016-11-27
      • 2017-09-28
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      相关资源
      最近更新 更多