私はdjangoによって作成されたフォームを持っています。問題なく挿入を行いますが、編集モードで使用したい場合、フォーム送信ボタンをクリックしてコードをデバッグすると、request.POST が空で送信されます。これは、パラメーター「id」をビューに送信するためです。(このパラメーターをリモートにすると、request.POST に値があります)。しかし、私は何をすべきですか?
models.py:
class Urls(models.Model):
url = models.TextField(
blank=True,
)
フォーム.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)