首页 文章

在Django模型formsets中使用Jquery

提问于
浏览
0

这实际上是一个Jquery问题 . 我的Web应用程序需要压缩两个formset . 我已成功压缩它们,但我不确定如何使用Jquery和Ajax提交表单(用户单击表单并保存表单集而不重新加载页面) . 我知道我必须使用Jquery“捕获”formset提交事件然后使用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 %}

2 回答

相关问题