0

私は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)
4

1 に答える 1

0

urls.py を次のように変更するだけで、機能させることができました。

url(r'^edit/(?P<id>\d+)$',
    'editSystemSetting',
    name='editSystemSetting'),
于 2012-10-09T07:12:35.317 に答える