我试图创建一个页面,其中有两个django表单,可以分别提交。我不想在用户提交时重定向用户,我正在尝试使用ajax和django来完成一个带有确认消息的提交,而不是外部操作。你知道吗
这是我的表单.py你知道吗
from django import forms
from django.db import models
from django.forms import ModelForm
from debates.models import Affirmative,Negative
SCORE_CHOICES = (
('5','5'),
('6','6'),
('7','7'),
('8','8'),
('9','9'),
('10','10')
)
scores = forms.ChoiceField(widget=forms.RadioSelect(), choices=SCORE_CHOICES)
class AffirmativeScore(ModelForm):
SlideShowScore = scores.choices
Speaker1 = scores.choices
Speaker2 = scores.choices
CrossExamination = scores.choices
Argument = scores.choices
class Meta:
model = Affirmative
class NegativeScore(ModelForm):
SlideShowScore = scores.choices
Speaker1 = scores.choices
Speaker2 = scores.choices
CrossExamination = scores.choices
Argument = scores.choices
class Meta:
model = Negative
你知道吗视图.py你知道吗
from django.shortcuts import render, get_object_or_404
from debates.models import Topic,Location,Date,Teacher
from debates.forms import AffirmativeScore,NegativeScore
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
#get the debate that are on
def judge(request):
Submit_form = 'null'
Affform = AffirmativeScore()
Negform = NegativeScore()
if request.method == 'GET':
Affform = AffirmativeScore()
Negform = NegativeScore()
elif request.method == 'POST':
if 'form_Positive' in request.POST:
Affform = AffirmativeScore(request.POST)
Submit_form = 'aff'
if Affform.is_valid():
Speaker1 = Affform.cleaned_data.get('Speaker1')
Speaker2 = Affform.cleaned_data.get('Speaker2')
CrossExamination = Affform.cleaned_data.get('CrossExamination')
SlideShowScore = Affform.cleaned_data.get('SlideShowScore')
Argument = Affform.cleaned_data.get('Argument')
#return render_to_response(msg)
elif 'form_Negative' in request.POST:
Negform = NegativeScore(request.POST)
Submit_form = 'neg'
if Negform.is_valid():
SlideShowScore = Negform.cleaned_data.get('SlideShowScore')
Speaker1 = Negform.cleaned_data.get('Speaker1')
Speaker2 = Negform.cleaned_data.get('Speaker2')
CrossExamination = Negform.cleaned_data.get('CrossExamination')
Argument = Negform.cleaned_data.get('Argument')
msg = "The operation has been received correctly."
print request.POST
return render_to_response('debates/scoring_upload.html', {'msg':msg}, context_instance=RequestContext(request))
#return render_to_response(msg)
if request.is_ajax():
return render(request, 'debates/scoring_upload.html')
msg = "The operation has been received correctly."
print request.POST
#Now return the rendered template
return render_to_response('debates/scoring_upload.html', {'msg':msg}, context_instance=RequestContext(request))
return render(request,'debates/judge.html', {
'form1':Affform, 'form2':Negform,
})
def handle(request):
return render(request,'debates/scoring_upload.html', {
})
你知道吗法官.html你知道吗
<html>
<head>
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}DebateSite.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
jQuery(function() {
var form = jQuery("Form_Response")
form.submit(function(e){
jQuery("#sendbutton").attr('disabled', true)
jQuery("#sendwrapper").prepend('<span>Sending message, please wait... </span>')
jQuery("#ajaxwrapper").load(
form.attr('action') + ' #ajaxwrapper',
form.serializeArray(),
function(responseText, responseStatus) {
jQuery("#sendbutton").attr('disabled', false)
}
);
e.preventDefault();
});
});
</script>
</head>
<body>
<div class="Banner">
Albany High School Freshmen Debates
</div>
<br>
<br>
<br>
<br>
<br>
<br>
<div id="Boxes">
<div id="AffirmativeNegativeDiv">
<div id="ScoreBox">
<h1>Affirmative</h1>
<br>
<form method='post'>
<div id="ajaxwrapper">
{% csrf_token %}
<br>
<br>
<ul>
{{ form1.as_p }}
</ul>
<p id="sendwrapper"><input type='submit' name='form_Positive' value='Submit_Postitive' /></p>
</div>
</form>
</div>
<div id="ScoreBoxNeg">
<h1>Negative</h1>
<br>
<form method='post'>
{% csrf_token %}
<br>
<br>
<ul>
{{ form2.as_p }}
</ul>
<input type='submit' name='form_Negative' value='Submit_Negative' />
</form>
</div>
</div>
</div>
</body>
</html>
对于AJAX提交,有两个return语句
第一种是呈现模板而不将消息添加到上下文中。第二个永远也达不到。你知道吗
相关问题 更多 >
编程相关推荐