gpt4 book ai didi

python - 在Python中确定一个合适的子类来存储特定类型的数据

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:56 26 4
gpt4 key购买 nike

我有一组通用属性(例如字符串和整数类型),我想使用以下 django 模型来存储它们:

class Attribute(models.Model):
item = models.ForeignKey('Item')

class Meta:
abstract = True

@staticmethod
def get_subclass_by_type(type):
TEXT_TYPES = ["text", "string"]
INTEGER_TYPES = ["integer", "number"]
if type in TEXT_TYPES:
return TextAttribute
if type in INTEGER_TYPES:
return IntegerAttribute

class TextAttribute(Attribute):
value = models.CharField(max_length=128)

class IntegerAttribute(Attribute):
value = models.IntegerField()

我是否错过了任何干净简单的方法来直接定义子类中的类型?类似于:

class Attribute(models.Model):
item = models.ForeignKey('Item')

class Meta:
abstract = True

@staticmethod
def get_subclass_by_type(type):
<do something>

class TextAttribute(Attribute):
TYPES = ["text", "string"]
value = models.CharField(max_length=128)

class IntegerAttribute(Attribute):
TYPES = ["integer", "number"]
value = models.IntegerField()

最佳答案

您可以尝试像下面这样定义方法 get_subclass_by_type

@classmethod
def get_subclass_by_type(cls, 类型):
对于 cls.__subclasses__() 中的子类:
如果输入 subcls.TYPE:
返回子类

尚未测试此代码,但我认为它应该有效。

关于python - 在Python中确定一个合适的子类来存储特定类型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22711738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com