我有一個表單以查看產品。爲了審查產品,我創建了一個表單,但是當用戶提交他的評論時,我希望他保持在同一頁面上。Django表單提交併且不更改頁面
這是我的網址:
url(r'^(?P<slug>[^/]+)/$', 'reviews.views.single_product'),
,這是我的形式
<form class = "form-inline" action = "/text/" method="post">{% csrf_token %}
<strong><h3>Revise este produto</h3></strong><br>
{% for field in form %}
<font size = "4">
{% if field.field.required %}
<div class="field-wrapper question-required">
{{ field.errors }}
<span class="asterix"> * </span><label class="label-inline">{{ field.label }}</label>
{% else %}
<div class="field-wrapper">
{{ field.errors }}
<label class="form-help-text">{{ field.label }}</label>
{% endif %}
<br />
<div class="">
{{ field }}
</div>
</div>
</li>
</font>
{% endfor %}
<br>
<button class="btn btn-primary" type="submit" name="submit" value = "Envia Review"><h4>Pronto!</h4></button>
</form>
這是呈現頁面視圖:
def single_product(request, slug):
product = get_object_or_404(Product, slug=slug)
prod = Product.objects.get(slug=slug)
reviews = Review.objects.get(product=prod.id)
reviewmatrix = {}
i = 0
try:
for rev in reviews:
reviewmatrix[str(i)] = [[review.review_text]]
u = User.objects.get(username=rev.user)
i = i + 1
except:
u = User.objects.get(username=reviews.user)
reviewmatrix[str(i)] = [[reviews.review_text]]
if request.method=="POST":
form = responseForm(request.POST, review=review)
if form.is_valid():
response = form.save()
msg = 'Obrigado por avaliar ' + prod.name
return render(request, 'product_detail.html', {'prod':prod, 'reviews':reviews, 'user':u.first_name, 'msg':msg})
else:
form = ReviewForm()
args = {}
args.update(csrf(request))
return render(request, 'product_detail.html', {'prod':prod, 'reviews':reviews, 'user':u.first_name, 'form':form})
這將在處理表單的視圖中完成。 – Rohan