2017-08-12 87 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,那麼你將需要請求對象。我將編輯它的答案 –