2024-04-18 17:16:29 发布
网友
如何在不使用django表单的情况下设置html表单字段。你知道吗
如果不希望使用django.forms,而是从模型中获取数据并将其显示为html表单,可以执行以下操作:
django.forms
视图.py
from django.shortcuts import render_to_response, redirect from myApp.models import MyModel def editForm(request, model_pk): model = MyModel.objects.get(pk=model_pk) return render_to_response('formUpdate.html',{ 'model' : model }) def updateForm(request, model_pk): model = MyModel.objects.get(pk=model_pk) model.firstname = request.POST['firstname'] model.lastname = request.POST['lastname'] model.save() return redirect('home', message='your name has been updated')
模板-表单更新.html
{% extends "base.html" %} {% block content %} <form action="/updateForm/{{ model.id }}/" method="post"> First name: <input type="text" name="firstname" value="{{ model.firstname }}" /><br /> Last name: <input type="text" name="lastname" value="{{ model.lastname }}" /><br /> <input type="submit" value="submit" /> </form> {% end block %}
型号.py
from django.db import models class MyModel(models.Model): firstname = models.CharField(max_length=20) lastname = models.CharField(max_length=20)
网址.py
from django.conf.urls.defaults import * urlpatterns = patterns('', (r'^$', 'views.home', name="home"), (r'^editForm/(?P<model_pk>\d+)/$', 'views.editForm'), (r'^updateForm/(?P<model_pk>\d+)/$', 'views.updateForm'), )
这与在PHP中处理表单的方式非常相似,model被传递到模板中,在模板中呈现现有的值。模型的id或pk(主键)通过URL传递给视图,然后更新的值返回到POST数据中的存储视图,在那里可以检索它们,更新的值存储在数据库中。你知道吗
model
id
pk
POST
Django的优点之一是它如何平衡开发速度和可插入性——几乎任何一个部分都可以被替换或修改。你知道吗
说到这里,有没有理由不想使用django.forms?据我所知,form只是为您完成了上面示例中的大部分艰苦工作,这就是django.forms的目的。它们还具有其他功能,以帮助防止恶意访问您的web应用程序,例如OOTB。创建ajax助手方法来检索和更新它们相当容易。你知道吗
form
您可以像在html中创建一个普通表单那样做。只需小心放置{% csrf_token %}。以及name的input的形式,因为它们将在视图中使用。你知道吗
{% csrf_token %}
name
input
例如:
<form method="post" action="#the url for the view"> {% csrf_token %} ... ... <! fields that you want Eg: > <label for="username">User name:</label> <input type="text" name="username" id="username" /> ... ... <input type="submit" value="Submit" /> </form>
希望这有帮助。你知道吗
如果不希望使用
django.forms
,而是从模型中获取数据并将其显示为html表单,可以执行以下操作:视图.py
模板-表单更新.html
型号.py
网址.py
这与在PHP中处理表单的方式非常相似,
model
被传递到模板中,在模板中呈现现有的值。模型的id
或pk
(主键)通过URL传递给视图,然后更新的值返回到POST
数据中的存储视图,在那里可以检索它们,更新的值存储在数据库中。你知道吗Django的优点之一是它如何平衡开发速度和可插入性——几乎任何一个部分都可以被替换或修改。你知道吗
说到这里,有没有理由不想使用
django.forms
?据我所知,form
只是为您完成了上面示例中的大部分艰苦工作,这就是django.forms
的目的。它们还具有其他功能,以帮助防止恶意访问您的web应用程序,例如OOTB。创建ajax助手方法来检索和更新它们相当容易。你知道吗您可以像在html中创建一个普通表单那样做。只需小心放置
{% csrf_token %}
。以及name
的input
的形式,因为它们将在视图中使用。你知道吗例如:
希望这有帮助。你知道吗
相关问题 更多 >
编程相关推荐