我有一个 django 模型,它可以通过外键(调用它们object1
和object2
)具有与之相关的两个对象之一。其他两个类在功能上几乎相同,但包含的信息略有不同。在另一个 StackOverflow 问题的建议下,我正在使用 python 方法property()
来设置和获取存在的任何对象。它如下所示:
class Master(models.Model):
object1=models.ForeignKey(Object1, null=True)
object2=models.ForeignKey(Object2, null=True)
def get_object(self):
if self.object2_id:
return self.object2
else:
return self.object1
def set_object(self, instance):
if isinstance(instance, Object2):
self.object2 = instance
self.object1 = None
else:
self.object2 = None
self.object1 = instance
objectInstance = property(get_object, set_object)
这是该类的简化版本。我认为一切正常。我能够设置和获取信息,并且可以在objectInstance
我的几个页面上显示保存的数据。我正在使用 django-tables2 在表格中显示信息,它也能够显示所有信息。但是,当我尝试对数据进行排序(使用提供的方便箭头)时,我得到一个 FieldError:
FieldError at /workflow/list/request/
Cannot resolve keyword u'objectInstance' into field. Choices are: object1, object2
知道是什么原因造成的吗?或者您需要查看哪些代码片段来帮助确定原因是什么?
编辑:
所以看起来我不是唯一一个遇到这个问题的人。这篇文章似乎表明这是 django-tables2 的问题。django-tables2 中的非查询集数据排序
似乎虽然表格可以显示保存在 a 中的信息,property
但它无法对其进行排序。