python - URL 模式以及如何将它们用于外部链接 django
问题描述
没有使用 Django 的经验,但我一直在使用 Reddit API,它使用起来既简单又有趣。我想我不了解 Django 中模板标签和 url 的基本知识。我真正想做的就是在斜线后面添加一个指向“ http://redd.it/ ”的href链接,并带有reddit id。
我的模型是:
class Reddit_Model(models.Model):
reddit_title = models.CharField(max_length=500,default='')
reddit_score = models.CharField(max_length=20,default='')
reddit_id = models.CharField(max_length=20,default='')
reddit_url=models.URLField(blank=True,max_length=500)
如果我在模板中使用:
<a href="{{ entry.reddit_url }}">{{ entry.reddit_url }}</a>
我按预期连接到外部 URL。
但是,该 URL 可以是某人在他们的帖子中放置的外部 URL,因此,如果我想返回该人的帖子(例如,reddit_id 为 ge2oap 的帖子)并在浏览器中键入http://redd。 it/ge20ap它将根据需要转到帖子。但是,当我尝试构建模板标签时,我遇到了问题。如果我使用
<a href="{{http://redd.it/{{entry.reddit_id}}}">http://redd.it/{{ entry.reddit_id }}</a>
并得到
http://127.0.0.1:8000/mainapp/'http://redd.it'%20ge2oap
我认为这是有道理的,所以我尝试了各种 URL 模板标记模式
<a href="{% url 'http://redd.it/' entry.reddit_id %}">http://redd.it/{{ entry.reddit_id }}</a>
这些都不起作用。我想我可以在模型中创建另一个字段。我查看了文档中的重定向函数和 get_absolute_URL() ,但没有看到在这种情况下如何使用它们,所以我怀疑我遗漏了一些明显的东西。有什么建议么?
解决方案
<a href="{{http://redd.it/{{entry.reddit_id}}}">http://redd.it/{{ entry.reddit_id }}</a>
应该
<a href="http://redd.it/{{entry.reddit_id}}">http://redd.it/{{ entry.reddit_id }}</a>
因为 href 的第一部分不是模板变量。请注意,无论如何您都不能嵌套这样的大括号。
推荐阅读
- android - Vertical ViewPager likeTikTok 应用在 android studio 中显示错误
- c++ - 计算三角线串上线粗的数学
- python - 如何在两个不同的数据列之间提取不常见的数据?
- python - 将文件转换为字典?
- html - 如何将h1放在图像上
- tf.keras - 如何为大小为 128x128x3 的图像在输入层中构造一个用于内核初始化的 sobel 滤波器?
- python - 将 QVBoxLayout 添加到 QFrame?
- html - Web 组件中的属性不显示
- java - 带有 JDK 9 模块的 Java 应用程序:ServiceLoader 找不到服务(因为 Maven 构建?)
- javascript - 如何使用户设置变量,然后将其放在 html 中?