我有一個項目,它已經將幾個來自我的其他項目的應用程序同步到一個主項目中。該結構是位於根網址和其他具有特定網址的應用程序的主要應用程序。我已經建立了我的urls.py:Django在應用程序間引用網址
url(r'^$', include('main_app.urls')),
url(r'^app1/', include('app1.urls')),
url(r'^app2/', include('app2.urls')),
url(r'^app3/', include('app3.urls')),
我在main_app models.py模型描述的線沿線的我的其他應用程序:
class App(models.Model):
title = models.CharField()
image = models.ImageField("App Image", upload_to="images/apps/", blank=True, null=True)
description = models.TextField()
在我main_app觀點:
def index(request):
app_list = App.objects.all()
return render_to_response('index.html',
locals(), context_instance=RequestContext(request))
所以,在我的根指數模板(main_app)我想通過所有的應用程序循環並打印鏈接:
{% for app in app_list %}
{{ some_app_variables }}
<a href="???">Link to app</a>
{% endfor %}
我的問題是我應該如何定義這個鏈接。我應該擁有應用模型的get_absolute_url嗎?
任何幫助非常感謝。
我已經添加了一些關於我的模型和視圖的信息,希望能夠澄清我想要做的事情。 –
這更符合我的想法。我相信我必須嚴肅地解釋自己,因爲我猜想這是任何具有多個應用程序的項目的基本問題。換句話說,你如何鏈接到來自中央主頁的每個應用程序,而無需在模板中對URL進行硬編碼? –
請參閱問題是,應用程序通常不會按照如此定義的方式處理。你可能在你的網站上有一個日曆應用程序,但是你沒有鏈接到在應用程序中創建一個視圖的「應用程序」,該應用程序知道如何渲染日曆,然後附加一個URL,如「/ calendar /」視圖。該應用程序可以被稱爲「日曆」或「事件」或「狗食」。這並不重要。它只是一組定義的功能的容器。 –