提问人:alexakarpov 提问时间:9/13/2023 最后编辑:alexakarpov 更新时间:9/13/2023 访问量:29
带有 HTML 的 TextField 中的 django URL
django URL in a TextField with HTML
问:
在我的 Django 电子商务项目中,我有一个明显的 Product 模型,带有预期的描述字段:
description = 模型。文本字段(...)
我配置了以下网址:
path(“product/slug:slug”, views.product_detail, name=“product_detail”),
显然,它提供这样的 URL:
http://localhost:8000/product/foo
当产品 foo 是带有产品栏的集合的一部分时,我想在此类产品的描述字段中添加相应的链接,例如“您可能想与此一起购买酒吧”。
然而,在 foo 的描述中添加一个指向酒吧的链接被证明是棘手的。 整个描述字段(从旧版 ecomm 应用程序导入)可以包含任意 HTML,并且由于它不是用户输入,因此我在模板中将其呈现如下:
{% autoescape off %}
{{ product.description }}
{% endautoescape %}
当我将其添加到 (TextField) 描述中时:
> This item together with <a href="product/bar">Bar</a> (sold separately)
,则模板中生成的 URL 错误:
http://localhost:8000/product/product/bar/
,但如果我不在描述的 url 中使用这个“/product”:
> This item together with <a href="/bar">Bar</a> (sold separately)
,URL也是错误的:
http://localhost:8000/bar/
我承认,我不明白 Django 是如何构建第一个或第二个 URL 的。所以具有讽刺意味的是,两者都不是我想要的:)
感谢您抽出宝贵时间接受采访。
答:
2赞
0urz4g
9/13/2023
#1
这与 Django 无关。 尝试使用
> This item together with <a href="/product/bar">Bar</a> (sold separately)
请注意,链接以斜杠开头
希望对您有所帮助
评论
0赞
0urz4g
9/13/2023
另请注意,您的 URL 定义可能应该是: path(“product/<slug:slug>”, views.product_detail, name=“product_detail”),
0赞
alexakarpov
9/14/2023
谢谢一堆!我有点知道它不是 Django,因为模板渲染在这里甚至不是图片的一部分(除了关闭自动转义)。至于URL,我责怪SO标记,没有注意到它偷了我的尖括号=)
评论