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,因此,如果我想返回人员帖子(例如,具有 ge2oap reddit_id的帖子(并且我在浏览器中输入 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 的第一部分不是模板变量。请注意,无论如何您都不能像这样嵌套大括号。

最新更新