django 表单提交如何识别用户按了表单中的哪个按钮

django 如何写表单提交_百度知道
django 如何写表单提交
设置文本框默认有字,点修改按钮可以把文本框中的字改变。
django 一般是用template来做页面的,如何编写模板和调用模板请参考:当然如果页面里不用加载数据的话你可以直接写个静态的HTML页面。“设置文本框默认有字,点修改按钮可以把文本框中的字改变。”这些要求在HTML里写个简单的脚本就行了(模板和HTML差不多的,模板不一样的地方就是用编地方需要服务器填充数据)。
其他类似问题
按默认排序
其他1条回答
这个应该是前端要做的事情吧。你如果用来django的form模块,可以在实例化form的时候给instance(用于model form)或者initial参数来初始化表单,这样网页上显示文本框中就有内容了,其他的事情都是JS完成的了
django的相关知识
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁现在位置:
每个按钮提交实现不同的功能
在模块中有2个提交按钮,如下:
form action="" method="post"&
&input type="submit" name="install" value="安装"&
&input type="submit" name="server" value="执行"&
只要在按钮上添加name值,如上面红色部分,然后在后台进行判断,即view.py,如下代码:
def install(request):
'''服务安装'''
iplist = IP.objects.all()
server_list = AddServer.objects.all()
mserver_list = MServer.objects.all()
if request.method == "POST":
if request.POST.has_key('install'):
#这里判断,如果是name值为install的,则执行此段代码
……代码段省略……
#这里判断,如果不是name值为install的,则执行此段代码,因为我们就只有2个name,所以就不用elif request.POST.has_key('server'):了
……代码段省略……
fr = CmdForm()
return render_to_response('install.html',locals())django下的表单
一:django的表单实现基本上有两种方法,一种是直接用在views理定义,用GET捕获输入,并控制输入格式和模板交互,展示给用户;另一种是使用django的forms模块实
一:& django的表单实现基本上有两种方法,一种是直接用在views理定义,用GET捕获输入,并控制输入格式和模板交互,展示给;另一种是使用django的forms模块实现,前者功能单一,用于实现简单功能,,后者功能强大,用于系统性和集中系统中。下面我们来简单介绍下两种方法二:第一种实现方式:& 我们以查找的某个字段为例说明,在views里定义方法捕获输入的内容,这个内容可以以过滤的方法在models里定义的表中进行查询,具体的查询结果由模板的html来展现。& 第二种方式实现:我们习惯在app里个forms.py来进行表单的格式控制,在views里进行调用即可本文出自 “django高级编程” 博客,谢绝转载!
你最喜欢的51CTO视频课程推荐:
72666人学习
3000人学习
25951人学习
查看:3827|回复:7
在看文档的时候一直觉得django的表单设计是很酷的东西,今天花了点时间研究一下,掌握的还不多,不过已经能实现不少的东西,当然是在编写极少代码的情况下。不然研究它的表单就没有意义了。
我目前使用的Django版本是1.1 beta.所以是继承于forms来实现的表单系统
from django import forms
第一步:首先在models.py中定义一个表单模型
class RemarkForm(forms.Form):
& && &&&subject = forms.CharField(max_length=100 ,label='留言标题')
& && &&&mail = forms.EmailField(label='电子邮件')
& && &&&topic = forms.ChoiceField(choices=TOPIC_CHOICES,label='选择评分')&&
& && &&&message = forms.CharField(label='留言内容',widget=forms.Textarea)
& && &&&cc_myself = forms.BooleanField(required=False ,label='订阅该贴')
那个topic中的choices需要在models.py中定义一个数组.
TOPIC_CHOICES = (
& && &&&('leve1', '差评'),
& && &&&('leve2', '中评'),
& && &&&('leve3', '好评'),
这样,之后在html显示的表单就采用这个模型的数据了。
另外还有一种定义表单模型的方式,那就是直接继承另一个models。如果我们在models里设计数据库时,已经设计好了一个类(就是数据库的表)之后想复用这个类的信息来作为表单的模型,那么很简单,同样是在models中的一个类
class Advertisement(models.Model):
&&#订单编号
&&OrderID& & =& &&&models.ForeignKey(OrderInfo)
&&#//广告标题#
&&Title& & =& & models.CharField(max_length = 36)
&&#//广告内容#
&&Content& & =& & models.CharField(max_length = 600)
注意,他的类型是models.Model,是做数据库ORM用的。
然后怎么关联呢?
需要导入一个新的类 (ModelForm)
from django.forms import ModelForm
class ContactForm(ModelForm):
&&class Meta:
& & model = Advertisement
& & fields = ('Title', 'CustomerID')
这里的Advertisement就是之前那个ORM的模型。
第二步:OK,继续我们的表单,下一步需要做什么呢?开始在views.py里写对表单的调用吧.
def remark(request):
& && &&&if request.method == 'POST': # 如果表单被提交
& && && && && & form = ContactForm(request.POST) # 获取Post表单数据
& && && && && & if form.is_valid(): # 验证表单
& && && && && && && && &return HttpResponseRedirect('/') # 跳转
& && &&&else:
& && && && && & form = ContactForm() #获得表单对象
& && && && && &
& && &&&return render_to_response('message.html', {
& && && && && & 'form': form,
& && &&&})
整个代码很简单,我就不过多的解释了。
第三步:我们知道django里任何访问都是通过urls.py来管理的。所以下面我们需要配置一个路径。
&&(r'^message', 'iring.views.remark'),
第四步:最后应该是建立一个模板的时候了,因为我们最终是输出到html上的.注意views的remark函数最后一行
& && &&&return render_to_response('message.html', {
& && && && && & 'form': form,
& && &&&})
就是讲当前的表单对象输出到message.html里,自动生成一个表单。
所以,先构建一个html.
这个html模板很简单,除去不必要的CSS,我只给出核心部分好啦。
&&&form action=&/message/& method=&POST&&
& & {% for field in form %}
& && &&div class=&fieldWrapper&&
& && && &{{ field.label_tag }}:{{ field }}
& && && &{{ field.errors }}
& && &&/div&
& & {% endfor %}
& & &div class=&fieldWrapper&&&p&&input type=&submit& value=&留言& /&&/p&&/div&
{% for field in form %}
{% endfor %}
用于对表单对象里的元素进行遍历,然后通过
{{ field.label_tag }}
{{ field }}
{{ field.errors }}
这三个标签来输出,注意{{ field.errors }}默认情况下是不会输出的,只有当验证表单正确性时才会输出内容。
最终我们通过
http://youdjangourl/message来访问这个例子
本帖最后由 阿汐 于
10:19 编辑
是C#写的?
算是python写的
第二步:OK,继续我们的表单,下一步需要做什么呢?开始在views.py里写对表单的调用吧.
def remark(request):
& && &&&if request.method == 'POST': # 如果表单被提交
& && && && && & form = ContactForm(request.POST) # 获取Post表单数据
& && && && && & if form.is_valid(): # 验证表单
& && && && && && && && &return HttpResponseRedirect('/') # 跳转
& && &&&else:
& && && && && & form = ContactForm() #获得表单对象
& && && && && &
& && &&&return render_to_response('message.html', {
& && && && && & 'form': form,
& && &&&})
**********************************************************************************
Exception Type: NameError
Exception Value: global name 'ContactForm' is not defined
**********************************************************************************
这里头怎么定义的?
from myproject.form import ContactForm
写的不严谨
如果出现CSRF verification failed. Request aborted
settings.py里面的MIDDLEWARE_CLASSES中加入 'django.middleware.csrf.CsrfResponseMiddleware', 错误就消除了。
DJANGO防止CSRF攻击整的东西
引用:原帖由 ppgs8903 于
15:17 发表
如果出现CSRF verification failed. Request aborted
settings.py里面的MIDDLEWARE_CLASSES中加入 'django.middleware.csrf.CsrfResponseMiddleware', 错误就消除了。
DJANGO防止CSRF攻击整的东西 ... 感谢指正,这个例子是09年在学习django时做的一个练习,挺多的东西现在看来都有不合理的地方。}

我要回帖

更多关于 django web开发指南 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信