首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使提交按钮指向视图

如何使提交按钮指向视图
EN

Stack Overflow用户
提问于 2015-02-26 03:29:57
回答 2查看 94关注 0票数 0

我希望模板中的submit按钮使用django表单转到另一个视图,或者只显示我在httpresponse中返回的消息。下面是我的代码:

views.py

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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.item

forms.py

代码语言:javascript
运行
复制
from django.forms import ModelForm 
from models import *

class customerForm(ModelForm):
    class Meta:
        model = customer
        fields = '__all__'

模板为:

代码语言:javascript
运行
复制
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>

在模板的最后几行,我做了一个提交按钮,我想让它指向一个新的视图或者第六行的视图应该被处理。保存完此表单中的所有数据后,将显示消息页面,显示数据已成功添加,我应该如何操作

EN

回答 2

Stack Overflow用户

发布于 2015-02-26 03:45:33

您可以使用不同的模板并呈现它,而不是返回响应响应

返回render(request,'add_customer_result.html')

票数 0
EN

Stack Overflow用户

发布于 2015-03-03 01:59:00

我不理解您编写views.py的方式,但是here是我编写的方式。

为方便起见,请在此处复制:

代码语言:javascript
运行
复制
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})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28727928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档