0

動的変数をdjangoのフォームのアドレスに入れる必要があります。フォームは次のとおりです。

<form action='/disciplinas/{{disciplina_id}}/edit/' method='submit'>{% csrf_token %}
<input type='submit' value='Voltar'>
</form>

問題は、私が「{{disciplina_id}}」と書いた「アクション」にありますが、それをどのように表現できますか?

view.py関数

def detail(request, disciplina_id):
  nome = disciplina.objects.filter(id__exact=disciplina_id)
  if request.method == 'POST':
    return HttpResponseRedirect('^(?P<disciplina_id>\d+)')
  if request.method == 'POST':
    nome.delete()
    return HttpResponseRedirect('/disciplinas/success')
  return render_to_response('/home/zephir/Template/disciplinas/detail.html', {'nome': nome}, context_instance=RequestContext(request))
4

3 に答える 3

5

テンプレート内の特定のビューにマップするURLの作成は、urlテンプレートタグを使用して行われます:https ://docs.djangoproject.com/en/1.4/ref/templates/builtins/#url

于 2012-06-05T22:35:41.993 に答える
0

nomeオブジェクトをテンプレートに渡すので、次のようにその名前でitsd属性を参照する必要があります。

<form action='/disciplinas/{{nome.disciplina_id}}/edit/' method='submit'>{% csrf_token %}
<input type='submit' value='Voltar'>
</form>
于 2012-06-06T03:07:23.807 に答える
0

テンプレートにコンテキスト変数を挿入したいようです。

def my_view(request, disciplina_id):
    nome = disciplina.objects.get(id__exact=disciplina_id)
    return render_to_response('/home/zephir/Template/disciplinas/detail.html', {'nome': nome, 'disciplina_id': disciplina_id}, context_instance=RequestContext(request))

その辞書を見ますか?これには、テンプレートで使用可能な変数のマップが含まれています。またはもっと簡単に:

def my_view(request, disciplina_id):
    nome = disciplina.objects.get(id__exact=disciplina_id)
    return render_to_response('/home/zephir/Template/disciplinas/detail.html', {'nome': nome}, context_instance=RequestContext(request))

<form action='/disciplinas/{{nome.id}}/edit/' method='submit'>{% csrf_token %}
    <input type='submit' value='Voltar'>
</form>

disciplinaすでにインスタンスを通過しているのでid、テンプレート内のそのプロパティにアクセスするだけです。

ビューの構造についてコメントすることは意図的に避けましたが(2つのチェックmethod=='POST')、修正することをお勧めします。

于 2012-06-05T22:48:08.283 に答える