django中固有的python抽象基类
我想用python制作一个通用模块,它使用来自Django模型的数据,并使用键入来记录接口。该模块应独立于Django模型。这应该如何以蟒蛇式的方式完成 我正在考虑使用ABC类,独立的python文件应该是(shape.py): django模型在另一个文件中定义:django中固有的python抽象基类,python,django,design-patterns,Python,Django,Design Patterns,我想用python制作一个通用模块,它使用来自Django模型的数据,并使用键入来记录接口。该模块应独立于Django模型。这应该如何以蟒蛇式的方式完成 我正在考虑使用ABC类,独立的python文件应该是(shape.py): django模型在另一个文件中定义: from django.db import models from shape import Shape class Box(models.Model, Shape): height= models.FloatField
from django.db import models
from shape import Shape
class Box(models.Model, Shape):
height= models.FloatField('height')
area = models.FloatField('area')
当我执行此操作时,会出现以下错误:
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
或者,我可以删除基类并使用Shape中所需的参数构造体积计算。但是,由于真实对象包含许多参数,列表变得相当长。您不必从
形状
派生框
,使其成为形状
,您只需:
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
from django.db import models
from shape import Shape
class Box(models.Model):
height= models.FloatField('height')
area = models.FloatField('area')
Shape.register(Box)