다음은 제거 된 모델 및 관련 메소드입니다. 난 모든 쿼리를 다시 쿼리하지 않고도 하나의 대답으로 필요한 모든 정보를 얻기 위해 쿼리를 실행할 때 간단한 방법을 찾고 있습니다. 여기에있는 도전은 value
이며 value_id의 서명 여부에 달려 있습니다.Django QuerySets - 클래스 메소드가있는 경우
class Property(models.Model):
property_definition = models.ForeignKey(PropertyDefinition)
owner = models.IntegerField()
value_id = models.IntegerField()
def get_value(self):
if self.value_id < 0: return PropertyLong.objects.get(id=-self.value_id)
else: return PropertyShort.objects.get(id=self.value_id)
는 지금 "값"을 얻기 위해 나는이 작업을 수행해야합니다
는object = Property.objects.get(property_definition__name="foo")
print object.get_value()
누군가는이 문제를 해결하기 위해 깨끗한 방법을 제공 할 수 있거나 충분히 "좋은"인가? 이상적으로 나는 이것을 단순히하고 싶습니다.
object = Property.objects.get(property_definition__name="foo")
object.value
감사
[일반 관계] (https://docs.djangoproject.com/en/1.3/ref/contrib/contenttypes/#generic-relations)를 사용 해본 적이 있습니까? –
안녕 다니엘! 답장을 보내 주셔서 감사합니다. 문서를 읽을 때 (일반적으로) PositiveIntegerField를 사용해야한다고 나와 있습니다. 이 서명의 서명은 어떻게 처리합니까? – rh0dium
글쎄요, 저의 요점은 긍정적/부정적 논리를 사용할 필요가 없다는 것입니다. 'content_type'을 사용하여 길고 짧은 속성을 구분할 수 있습니다. –