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