我有一个项目,它已经将几个来自我的其他项目的应用程序同步到一个主项目中。该结构是位于根网址和其他具有特定网址的应用程序的主要应用程序。我已经建立了我的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 /”视图。该应用程序可以被称为“日历”或“事件”或“狗食”。这并不重要。它只是一组定义的功能的容器。 –