我希望模板中的submit按钮使用django表单转到另一个视图,或者只显示我在httpresponse中返回的消息。下面是我的代码:
views.py
def customer_form(request):
form = customerForm(request.POST)
if form.is_valid():
try:
customer = form.save(commit=True)
customer.save()
except DatabaseError as e:
message = 'Database Error: ' + str(e.message)
return render(request, 'bill.html')
return HttpResponse("user added successfully!!")
else:
form = customerForm()
return render(request, 'add_customer.html', {'form': customerForm})models.py
from django.db import models
class customer(models.Model):
name = models.CharField(max_length=20)
province = models.CharField(max_length=40)
city = models.CharField(max_length=20)
state = models.CharField(max_length=20)
purchase_order = models.IntegerField(max_length=20, primary_key = True)
no_of_items = models.IntegerField(max_length=20)
rate_of_pure = models.IntegerField(max_length=20)
date = models.DateField()
email = models.EmailField(max_length = 20)
def __unicode__(self):
return self.name
class Choice(models.Model):
item = models.ForeignKey(customer)
carat = models.IntegerField(max_length=20)
weight = models.DecimalField(max_digits=20, decimal_places=3)
labour_cost = models.DecimalField(max_digits=10, decimal_places=3)
def __unicode__(self):
return self.itemforms.py
from django.forms import ModelForm
from models import *
class customerForm(ModelForm):
class Meta:
model = customer
fields = '__all__'模板为:
enter code here
<html>
<head><title>Add Customer </title></head>
<body>
<form id="customer_form" method="POST">
{% csrf_token %}
{{form.as_p}}
<form>
<fieldset>
<legend>Choice #1</legend>
Carat:<br>
<input type="text" name="carat">
<br>
Item:<br>
<input type="text" name="item">
<br>
Weight: <br>
<input type="text" name="weight">
<br>
Labour Cost:<br>
<input type="text" name=labour_cost>
</fieldset>
</form>
<form >
<input type="submit" action="/start/" method = "post" value="submit">
</form>在模板的最后几行,我做了一个提交按钮,我想让它指向一个新的视图或者第六行的视图应该被处理。保存完此表单中的所有数据后,将显示消息页面,显示数据已成功添加,我应该如何操作
发布于 2015-02-26 03:45:33
您可以使用不同的模板并呈现它,而不是返回响应响应
返回render(request,'add_customer_result.html')
发布于 2015-03-03 01:59:00
我不理解您编写views.py的方式,但是here是我编写的方式。
为方便起见,请在此处复制:
from django.shortcuts import render
from django.http import HttpResponseRedirect
def get_name(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = NameForm(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
return HttpResponseRedirect('/thanks/')
# if a GET (or any other method) we'll create a blank form
else:
form = NameForm()
return render(request, 'name.html', {'form': form})https://stackoverflow.com/questions/28727928
复制相似问题