Python 修复使用django多表继承时的父字段值
我正在尝试构建一个django界面,以帮助管理和调配公司基础架构中的资源。我试图将多态性与“资源提供者”的概念结合起来使用 脚本 以下是一些能够很好地代表场景的存根模型: 资源模型(由一个应用程序提供): 资源提供者的抽象(由第二个应用程序提供): 单个资源提供商(由多个应用程序提供-每个提供商一个) 问题 单个应用程序如何注册为提供商? 每个提供资源的应用程序都应该通过一些id进行识别。此注册应该在Python 修复使用django多表继承时的父字段值,python,django,python-3.x,inheritance,django-models,Python,Django,Python 3.x,Inheritance,Django Models,我正在尝试构建一个django界面,以帮助管理和调配公司基础架构中的资源。我试图将多态性与“资源提供者”的概念结合起来使用 脚本 以下是一些能够很好地代表场景的存根模型: 资源模型(由一个应用程序提供): 资源提供者的抽象(由第二个应用程序提供): 单个资源提供商(由多个应用程序提供-每个提供商一个) 问题 单个应用程序如何注册为提供商? 每个提供资源的应用程序都应该通过一些id进行识别。此注册应该在提供商模型中进行,然后由服务资源作为提供商字段使用 我可能可以调用models.py文件顶部的P
提供商
模型中进行,然后由服务资源
作为提供商
字段使用
我可能可以调用models.py
文件顶部的Provider(id='some-Provider').save()
,但我觉得这不是最好的方法,因为每次加载models.py
时都会更新表
另一种方法是手动在迁移文件中添加一行,但我觉得这是错误的,而且有点老套。也许有一种django的方法我还没有发现。我认为可能有一种“正确”的预填充表的方法
如何使ServiceResource始终使用应用程序各自的提供者值?
我能想到的三种方法是:
provider
实例屏蔽provider
,而不是创建引用provider(id='service-provider')的ForeignKey
类服务资源(ResourceProvider):
提供者=提供者(id='service-provider')
\uuuu init\uuuu
方法并在那里设置值/将其添加到**kwargs
中,然后再传递给父构造函数class Resource(models.Model):
"""
Representation of the physical resource
"""
pass
class Provider(models.Model):
"""
Representation of a service provider that can provide resources
"""
id = models.SlugField(max_length=32, primary_key=True)
class ResourceProvider(models.Model):
"""
'Abstract' class for a provider of the resource represented by Resource
"""
provider = ForeignKey(Provider, null=False)
provides = ForeignKey(ServerImage, null=False)
class Meta:
unique_together = ('provider', 'provides')
class ServiceResource(ResourceProvider):
"""
Representation of the resource on a particular
"""
service_identifier = models.UUIDField(null=False)