2017-08-12 42 views
0

好的,我认为这实际上比我做的更简单,但我无法弄清楚在django文档中搜索什么。在Django中打印对象的URL

这是我需要做的。我即将运行一个脚本(使用编写自定义django-management命令指南),这将向我的数据库添加一大堆记录。大量汇入所有学生资料。在创建这130条新记录之后,我需要为每条记录创建一个QR码。我发现了几个QR码生成器网站,但这很慢,学校不会为我报名参与QR码生成的用户而付费。没问题,这是Python。包括电池!

我已经安装了qrcode模块,但我不明白的是如何在创建对象后获取URL。我知道我想要哪个视图(相对网址是/awards/student/<student_id>/)。我知道在HTML模板语言中,{% url 'StudentHome' student.id %}可以让我获得该网址。我可以从命令行访问它,并将它传递给qrcode,qrcode然后生成并将qrcode保存为png文件?

回答

2

使用reverse方法来反转URL。

reverse("url_name", args=(args1)) 

至于你的情况

reverse("StudentHome", args=(student.id)) 

为获得绝对URI,您可以使用此方法。

abs_uri = request.build_absolute_uri(reverse("StudentHome", args=(student.id))) 

参考文献:docs

+0

这是否给我一个绝对URL(www.mysite.com/awards/student/1/)或相对URL(/奖励/学生/ 1 /)? – Jonathanb

+0

它只能给相对的uri。如果你想建立绝对的Uri,那么你将需要请求对象。我将编辑它的答案 –