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

听起来您想将上下文变量注入模板。

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在模板中访问它的属性。

我故意避免评论您的视图结构(两次检查method=='POST'),但您可能想要修复它。

于 2012-06-05T22:48:08.283 回答
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 回答