我有一个django项目,它有这样的模型。
class Part(models.Model):
attr1 = models.CharField(max_length=50)
attr2 = models.CharField(max_length=50)
class Document(models.Model):
part = models.ForeignKey(Part)
attr1 = models.CharField(max_length=50)
等等。
单个模块中有很多模型,每个模型都需要一个具有相同属性和一个或多个附加属性的独立模型。
如果不手工编写每一堂课,我该怎么做呢?
的修改
好的问题有点不清楚
我想在数据库中为每个模型创建一个2个独立的表,如上面所示,另一个带有一个附加列
编辑2
当我提出
import inspect
import sys
for name, obj in inspect.getmembers(sys.modules[__name__]):
if inspect.isclass(obj) and issubclass(obj, models.Model) and hasattr(obj, 'Meta') and inspect.isclass(obj.Meta) and not (
hasattr(obj.Meta, 'abstract') and obj.Meta.abstract):
globals()["Edit" + name] = type("Edit" + name, (obj,), {'fu': 'bar'})
在models.py的底部,我为此文件中定义的每个模型获得了一个新模型
因此,我会为EditPart
和EditDocument
个类提供属性fu
。
答案 0 :(得分:0)
你可以继承的abstract model怎么样?
class BaseModel(models.Model):
attr1 = models.CharField(max_length=50)
class Meta:
abstract = True
class Part(BaseModel):
attr2 = models.CharField(max_length=50)
class Document(BaseModel):
part = models.ForeignKey(Part)