Django将表单详细信息保存在数据库中并使用ajax检索回来

时间:2013-07-30 06:41:05

标签: ajax django jquery django-ajax-selects

我想在数据库中保存详细信息并使用Ajax检索回同一页面。我添加了代码供您参考。请分享您的想法。

models.py

class Personal(models.Model):
    user=models.ForeignKey(User)
    name=models.CharField()
    dob = models.CharField()
    email = models.EmailField()
    address1 = models.CharField()
    address2 = models.CharField()
    country = models.CharField()
    state = models.CharField()
    city = models.CharField()

Views.py

def profile(request):
    userid=request.user.id
    personal=JSPersonal.objects.filter(user_id=userid)
    return render(request,'registration/profile.html', {'personal':personal})

模板(profile.html)

{% if personal %}
{% for p in personal %}
<p>Name : {{p.name}}</p>
<p>DOB : {{p.dob}}</p>
<p>Email : {{p.email}}</p>
<p>Address1 : {{p.address1}}</p>
<p>Address2 : {{p.address2}}</p>
<p>Country : {{p.country}}</p>
<p>State : {{p.state}}</p>
<p>City:{{p.city}}</p>
{% endfor %}
{%else%}
<p>Click <a href="#">Here</a> to add details</p>
{% endif %}

通过点击“Here”模型表格,可以在这里输入个人详细信息。我需要在数据库中存储详细信息,并在模型表单中单击“提交”按钮后返回到同一页面。只加载特定内容而不是整页。

2 个答案:

答案 0 :(得分:0)

基本的想法是,您将一个带有ID的元素围绕将要更改的数据,并通过jQuery.load调用来定位该ID。

请参阅:Render a django table using ajax

答案 1 :(得分:0)

我建议您使用表单执行此类任务:https://docs.djangoproject.com/en/dev/topics/forms/

在这种情况下,您可以使用jQuery $ .post():

轻松发送表单
$.post('/form/url/', $('form_selector').serialize())
  .done(function(data) { ... })
  .fail(function(jqXHR) { ... });

更详细的回复: How to POST a django form with AJAX & jQuery