【问题标题】:Concatenate HTML with Django variable in HTML Template将 HTML 与 HTML 模板中的 Django 变量连接起来
【发布时间】:2016-12-20 16:45:12
【问题描述】:

我有一个问题可以帮助我完成我的项目。 我想知道是否可以将 HTML 输入操作与 Django 变量连接起来?

例如:

<form method='POST' action='/BirthCertificate/BirthCertificate_PDF/'+ {{birthcertificate.id}}> {% csrf_token %}

为了得到:/BirthCertificate/BirthCertificate_PDF/12/

例如,其中 12 是指在我的表中创建的最后一个 ID。 然后,我有一个函数,它接受这个 id 号并做一些事情,因为我知道有用的行:

来自 views.py 文件

def BirthCertificate_PDF(request, id) :

    birthcertificate = get_object_or_404(BirthCertificate, pk=id)
    return render(request, 'BC_raw.html', {"birthcertificate" : birthcertificate})

来自 urls.py 文件

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^accueil$', views.BirthCertificate_Home, name="home"),
    url(r'^formulaire$', views.BirthCertificate_Form, name = "form"),
    url(r'^formulaire_traite/(?P<id>\d+)/$', views.BirthCertificate_Resume, name="treated"),
    url(r'^BirthCertificate_PDF/(?P<id>\d+)/$', views.BirthCertificate_PDF, name="PDF")
]

我认为我的问题真的很难看,但如果我可以连接两个元素,它可能会起作用。

谢谢你的建议,

【问题讨论】:

  • 你试过后得到了什么?..
  • 我认为一般的答案是{{var}} 可以在 Django 模板渲染中的任何地方工作,除了{% stuff %} 内部或嵌套在外部{{...}} 中。没有+ 连接运算符,它只是用var 的值直接替换{{var}} 的文本。在 Web 浏览器中查看您的视图输出的页面源代码,看看发生了什么!。但是,对于这种 特定 用法,有充分的理由使用 {% url ...%},如下面的 Daniel Roseman 回答。
  • 谢谢,这正是我搜索的答案。

标签: python html django


【解决方案1】:

您根本不应该连接,也不应该对路径进行硬编码。您应该使用{% url %} 标签。

<form action="{% url "PDF" birthcertificate.id %}"> 

【讨论】:

  • 谢谢!现在我明白了我必须如何使用{% url %}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 2021-02-01
  • 2016-01-12
  • 1970-01-01
  • 2013-03-21
  • 2011-09-26
  • 2022-11-30
相关资源
最近更新 更多