我有两个模特。一种模式用于构建主菜单,另一种模式用于文章。每一篇文章都有ForeignKey
链接到主菜单项。在
我搞不懂,如何在Article
页面上显示链接到menuItem
模型的alias
字段作为URL地址?在
我的模型menuItem
:
# -*- coding: utf-8 -*-
from django.db import models
class MainMenuItem(models.Model):
class Meta:
db_table = "menu_item"
title = models.CharField(max_length = 50)
alias = models.CharField(max_length = 50)
def __unicode__(self):
return self.title
def __str__(self):
return self.title
我的模型Article
:
我的views.py
def menu_builder(request, alias):
findId = MainMenuItem.objects.????
elements = {
'menuItems': MainMenuItem.objects.all(),
'article': Article.objects.get(id=??????),
}
return render_to_response('myview.html', elements)
我的urls.py
:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^(?P<alias>.+?)/$', 'menuItem.views.menu_builder'),
]
您只需按
MainMenuItem
上的别名进行筛选,然后获得与MainMenuItem
相关的所有文章:关于related object lookup using ^{} 的Django doc。在
编辑:
我之前应该使用},这是错误的。不同的是你应该只得到一个项目,这样你就可以得到与这个对象相关的文章。如果您使用
objects.get()
,但使用的是{filter
,那么您将得到一个queryset,但是在多个对象上检查相关对象是没有意义的,因此出现错误'QuerySet' object has no attribute 'article_set'
。在注意,您应该为
MainMenuItem
对象使用不同的alias
,否则get()
将抛出异常“Multiple objects returned”。在相关问题 更多 >
编程相关推荐