说我有一个看起来像这样的抽象模型:
class CommonInfo(models.Model):
id = models.BigIntegerField(primary_key=True, default=get_id, editable=False)
class Meta:
abstract = True
还有一个继承这样的抽象模型的类:
class Concrete(CommonInfo):
name = models.CharField()
然后可以在以后创建一个Concrete
实例,该实例覆盖id
中的CommonInfo
。例如:
Concrete.objects.create(id=1, name="test")
我已经尝试过这种方法,并且似乎可行,但是当我尝试对这些对象进行排序时,我得到一个TypeError: '<' not supported between instances of 'Concrete' and 'Concrete'
,如以下问题所示:Django: TypeError: '<' not supported between instances (model objects)
但是,当我不重写id
并仅使用name
和Concrete.objects.create(name="test")
创建对象时,不会引发此类错误。这使我相信实际上无法做我想做的事情,是对的还是其他原因导致TypeError
?