URL 模式以及如何将它们用于外部 link django

URL patterns and how to use them for external link django

对 Django 没有经验,但我一直在玩 Reddit API,它使用起来既简单又有趣。我想我不了解 Django 中模板标签和 url 的一些基本知识。我真正想做的就是有一个 href link 到'http://redd.it/',斜线后的 post 的 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 可以是某人放入 post 的外部 URL,所以如果我想回到 post 的人(例如一个 post 有一个 reddit_id 的 ge2oap),我在浏览器中输入 http://redd.it/ge20ap 它会根据需要转到 post。但是,当我尝试构建模板标签时,我 运行 遇到了问题。 如果我使用

<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>

none 其中工作。我想我可以在模型中创建另一个字段。 我查看了文档中的重定向函数和 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 的第一部分不是模板变量。请注意,您无论如何都不能嵌套大括号。