【问题标题】:Using Jquery in Django model formsets在 Django 模型表单集中使用 Jquery
【发布时间】:2014-03-02 13:34:54
【问题描述】:

这实际上是一个 Jquery 问题。我的 Web 应用程序需要压缩两个表单集。我已成功压缩它们,但我不确定我应该如何使用 Jquery 和 Ajax 提交表单(用户单击表单并保存表单集而无需重新加载页面)。我知道我必须使用 Jquery “捕获”表单集提交事件,然后使用 Jquery.ajax(),但我不确定当用户单击表单下的“提交”按钮时如何“捕获”事件,因为表单是在 Django 中自动生成的,因此我不能在 Jquery 代码中使用表单的 ID。

这是我的看法。代码现在完美运行:

def App(request):
lectures = Lecture.objects.all()
TopicFormSet = modelformset_factory(Topic, extra=0)
SummaryFormSet = modelformset_factory(Summary, extra=0)
t_formset = TopicFormSet()
s_formset = SummaryFormSet()
# zipping the formsets
zipped = zip(t_formset.forms, s_formset.forms) 
#saving formsets:
if request.method == 'POST':
    t_formset = TopicFormSet(request.POST)
    s_formset = SummaryFormSet(request.POST)
    if t_formset.is_valid() and s_formset.is_valid():
        t_formset.save() and s_formset.save()
        zipped = zip(t_formset.forms, s_formset.forms)
    else:
        return HttpResponse("not valid, dude") # for testing purposes
return render (request, "app.html", {"lectures" : lectures, "zipped" : zipped, "t_formset" : t_formset, "s_formset" : s_formset})

我的模板:

<form action = "http://127.0.0.1:8000/app/" method = "POST">
        {% csrf_token %}
        <!-- t_formset.management_form -->
        {{ t_formset.management_form }}
        <!-- t_formset.management_form -->
        {{ s_formset.management_form }}
        <!-- formsets -->
        {% for topic, summary in zipped %}
        <div id="topic">{{ topic }}</div>
        <br>
        <input type="submit" value="Submit" id="mygt" />
        <br>
        <div id="summary">{{ summary }}</div>
        <br>
        <input type="submit" value="Submit" id="mygt" />
        {% endfor %}

【问题讨论】:

    标签: jquery ajax django


    【解决方案1】:

    查看 django-dajax 和 django-dajaxice 以获得超级易用的 ajax 库: 例子: http://www.dajaxproject.com/dajaxice/ http://www.dajaxproject.com/multiply/

    【讨论】:

      【解决方案2】:
      $(document).ready(function()
          $(#mygt).click(function() 
               $.post or $.ajax
      

      那些应该让你开始。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-30
        • 2011-06-11
        • 2018-09-13
        • 2016-04-21
        • 2014-04-11
        • 2012-12-22
        • 1970-01-01
        相关资源
        最近更新 更多