2009-10-30 78 views
1

我有以下Django模型:如何在数据库中存储多个Django模型类型并将它们作为对象访问?

Bar, Bistro and Restaurant 

每个上述建立的都有自己的菜单项,例如:

  1. 酒吧
    • 汉堡
    • 薯条
    • ...
  2. 小酒馆
    • 面食
    • 比萨
    • ...
  3. 餐厅
    • ...

我在我的主页,主横幅,左侧栏和右侧栏中有不同类型的图像。这些图像中的每一个都将链接到横跨酒吧,小酒馆和餐厅的菜单项。我目前硬编码的网址为每个在管理这些图像:

class Image(models.Model): 
    alt_name = models.CharField 
    source = models.ImageField 
    url = models.CharField 

以上工作正常,但是如果菜单项的变化之一,我会回去的管理和再 - 写入新的网址。我想提高我的管理员使它看起来像下面的:

alt text http://i37.tinypic.com/1075jl2.png

选择适当的建立将填充适当的菜单项。在后端,数据库将存储与建立类型相对应的字符串以及与该建立相关的菜单项的主键。我需要建立关联,因为菜单项存储在它们自己的表(BarMenuItem,BistroMenuItem和RestaurantMenuItem)中。

给定一个字符串Bistro,是否有可能在Django中检索其相应模型的相同名称?我相信,如果你有任何建议,我可能会因上述解决方案而过度沉迷,让我知道你的想法。

回答

1

给定一个字符串小酒馆,是否有可能在Django中检索其相应模型的相同名称?

是的。

model = ContentType.objects.get(model='Bistro').model_class() 

http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/

+2

一个想到的办法:也许你应该使用的ContentType框架已在图象类外商键,并具有计算'url'根据链接对象的值可调用? – cethegeek 2009-10-30 19:03:42

+0

这正是我要找的,让我试试看。 – 2009-10-30 19:58:34

相关问题