我正在创建一个产品 ID 转换应用程序。我有两个模型代表两种 ID 样式:
class Id1(models.Model):
number = models.CharField(max_length=10)
converted = models.CharField(max_length=13)
status = models.CharField(max_length=5) # validation status
error = models.CharField(max_length=10) # error message
def __unicode__(self):
return self.number
class Id2(models.Model):
number = models.CharField(max_length=13)
converted = models.CharField(max_length=10)
status = models.CharField(max_length=5) # validation status
error = models.CharField(max_length=10) # error message
def __unicode__(self):
return self.number
我想将一个第三方 Python(非 Django)模块合并到 Django 模型中,原因有两个:
- 它已经提供了我需要的转换功能
- 我想在进行转换时使用 OO 方法——我创建了一个类的实例(例如 Id1),它封装了该实例的相关数据和方法。
第三方模块有以下类,每个类都有几个字段和方法:
- 类 ID(对象)
- 类 Id1(Id)
- 类 Id2(Id)
...以及类方法调用的以下顶级函数:
- 定义验证
- 定义转换
- def 计算校验和
- 定义清洁
但是,我不希望第三方模块的属性在数据库中;每个数据库表应该只包含 Django 模型字段(数字和转换)。
如何做到这一点?如果这是不可能的,有什么替代方法可以解决这个问题?将逻辑委托给视图?
[编辑]我忘了补充一点,我想使用模块方法来初始化一些字段,如“converted”、“status”和“error”。知道怎么做吗?