首页 > 解决方案 > 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() ,但没有看到在这种情况下如何使用它们,所以我怀疑我遗漏了一些明显的东西。有什么建议么?

标签: pythondjangoreddit

解决方案


<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 的第一部分不是模板变量。请注意,无论如何您都不能嵌套这样的大括号。


推荐阅读