Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的Django管理界面的Django管理界面_Django_Design Patterns_Django Models_Django Admin_Subclassing - Fatal编程技术网

我的Django管理界面的Django管理界面

我的Django管理界面的Django管理界面,django,design-patterns,django-models,django-admin,subclassing,Django,Design Patterns,Django Models,Django Admin,Subclassing,我的Django项目有ShopType和ShopItem模型。对于我创建的每个ShopType对象,我想关联——不是单个ShopItem对象——而是ShopItem的一个子类。基本上,我希望Django中的模型类型不是TextField或ImageField之类的,而是ModelField 示例:使用Django管理界面,我创建了一个名为CheeseShop的ShopType的新实例。这又创建了一个名为Cheese的新模型,它继承了ShopItem的所有行为。如果我进入Django管理站点的主页

我的Django项目有ShopType和ShopItem模型。对于我创建的每个ShopType对象,我想关联——不是单个ShopItem对象——而是ShopItem的一个子类。基本上,我希望Django中的模型类型不是TextField或ImageField之类的,而是ModelField

示例:使用Django管理界面,我创建了一个名为CheeseShop的ShopType的新实例。这又创建了一个名为Cheese的新模型,它继承了ShopItem的所有行为。如果我进入Django管理站点的主页,现在有一个新的链接叫做Cheeses,我可以随意创建一堆Cheeses

当然,我怀疑这实际上是不可能的:如果我创建-比如说-PetShop,我不仅需要向数据库中添加一个新记录,还需要扩展数据库模式本身,以包括Pets,同时在管理界面上注册新的Pet模型,可能还有一些我还没有想到的其他复杂事情

但是对于这种模式,可能有一个现有的Django解决方案?或者可能有一种完全不同的、更适合的方法来解决这个问题,从而达到同样的效果

有什么想法吗