foreign 키를 통해 두 개의 객체 중 하나를 가질 수있는 django 모델이 있습니다 (object1
및 object2
). 두 개의 다른 클래스는 기능면에서 거의 동일하지만 약간 다른 정보를 포함합니다. 다른 StackOverflow 질문의 제안에, 나는 파이썬 메서드 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 at /workflow/list/request/
Cannot resolve keyword u'objectInstance' into field. Choices are: object1, object2
어떤 생각 : 그러나, 나는이 FieldError를 얻을 수 (제공되는 편리한 화살표를 사용하여) 데이터를 정렬하기? 또는 원인을 파악하는 데 도움이되는 코드 스 니펫은 무엇입니까?
편집 : 나는이 문제를 가진 유일한 사람이 아니에요처럼
그래서이 보인다. 이 게시물은 django-tables2에 문제가 있음을 나타냅니다. Non-queryset data ordering in django-tables2
표는 property
에 저장된 정보를 표시 할 수 있지만 정렬하는 데 어려움이있는 것으로 보입니다.
나는 약간 혼란 스럽습니다. 'ObjectInstance'라는 또 다른 클래스가 있어야한다고 말하는 것인가요? 그 안에 그 코드가 있고, ObjectInstance와의 외래 키 관계가 있습니까? –
그게 도움이 되었습니까? – lalo
본인이 직접 답변을 찾았습니다 (아래 참조). 결국 데이터 구조를 이해하지 않고 명시적인'order_by' 인수가 필요하게되는 장고 표 2에 대한 문제가되었습니다. –