如何在数据库中存储许多Django模型类型并将其作为对象访问?

时间:2009-10-30 17:56:34

标签: django django-models

我有以下Django模型:

Bar, Bistro and Restaurant

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

  1. 酒吧
    • 汉堡
    • 弗里斯
    • ...
  2. 小酒馆
    • 面食
    • 披萨
    • ...
  3. 餐厅
    • ...
  4. 我的主页上有不同类型的图像,主横幅,左侧横条和右侧横条。每个图像都有指向酒吧,小酒馆和餐厅菜单项的链接。我目前正在对管理员中每个图像的网址进行硬编码:

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

    以上工作正常但如果其中一个菜单项发生变化,我将不得不返回管理员并重新编写新网址。我正在考虑改进我的管理员,使它看起来如下:

    alt text

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

    给定一个字符串Bistro,是否可以在Django中检索其相应名称的相应模型?我相信我可能已经过度使用上述解决方案,如果您有任何建议,请告诉我您的想法。

1 个答案:

答案 0 :(得分:1)

  

给定一个字符串Bistro,是否可以在Django中检索其相应名称的相应模型?

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

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