在 django 中更新表单数据
Posted
技术标签:
【中文标题】在 django 中更新表单数据【英文标题】:Update form data in django 【发布时间】:2012-09-29 09:33:32 【问题描述】:我有一个由 django 创建的表单。我没有任何困难地进行插入,但是当我想在编辑模式下使用它时,当我单击表单提交按钮并调试代码时,request.POST 发送为空;那是因为我将参数“id”发送到视图。 (当我远程这个参数时,我在 request.POST 中有值)。但是我该怎么办?
models.py:
class Urls(models.Model):
url = models.TextField(
blank=True,
)
forms.py:
class SaveUrl(forms.Form):
url = forms.CharField(
label=u'Url',
widget=forms.TextInput(attrs='size':32)
)
urls.py:
urlpatterns = patterns('systemSettings.views',
url(r'^$',
'systemSettings',
name='systemSettings'),
url(r'^edit/(?P<id>\d+)/$',
'editSystemSetting',
name='editSystemSetting'),
)
在模板中,urlsSetting.html:
<form action=" action " id="urlsForm" method="POST">
<label for="id_url">Url:</label></td><td>
form.url
<input type="submit" value="insert" />
</form>
观点:
def editSystemSetting(request, id):
Url = Urls.objects.get(id = id)
editData = 'url':Url.url
URLS = Urls.objects.all()
form = SaveUrl(request.POST)
if form.is_valid():
url = form.cleaned_data['url']
Url.url=url
Url.save()
else:
form = SaveUrl(editData)
variables = RequestContext(request,
'form': form,
'urls':URLS,
'action':'/systemSettings/edit/'+id,
)
return render_to_response('systemSettings/urlsSetting.html', variables)
【问题讨论】:
建议: 1) 使用reverse 来创建一个url 并转义它的硬编码。 2) 使用表单as django offers 3) 对于初始数据(编辑模式)使用initial
kwarg
【参考方案1】:
我能够让它工作,只是将 urls.py 更改为:
url(r'^edit/(?P<id>\d+)$',
'editSystemSetting',
name='editSystemSetting'),
【讨论】:
以上是关于在 django 中更新表单数据的主要内容,如果未能解决你的问题,请参考以下文章