에 관련 개체와 검색어 세트를 변환 :장고 :의 나는 두 가지 간단한 모델이 있다고 가정하자 JSON
class Place(models.Model):
name = models.CharField(max_length=200)
address = models.CharField(max_length=200)
class Event(models.Model):
name = models.CharField(max_length=200)
date = models.DateField()
place = models.ForeignKey(Place)
내가 지금하고 싶은 것은 해결 된 장소와 이벤트 세트를 조회하고, 목록에 모든 것을 변환입니다 나중에 JSON으로 변환 할 수 있습니다. .values()
이후
Event.objects.all().select_related("place").values()
이 있지만 작동하지 않습니다 : 나는 ValueQuerySet
내 행운을 시도 지금까지
[{
"name": "event1",
"date": "date1",
"place": {
"name": "place1",
"address": "address1",
},
},{
"name": "event2",
"date": "date2",
"place": {
"name": "place2",
"address": "address2",
},
},]
과 .values()
방법 :
이 최종 결과이 같이하는 방법입니다 콘텐츠가 아닌 관련 객체의 ID 만 반환합니다. 그래서 이런 종류의 변환을 수행하는 또 다른 내장 된 방법이 있는지 또는 QuerySet 객체를 반복하고 변환을 수행해야하는지 궁금합니다.
이 기능은 완벽하게 작동합니다. 한 가지 후속 질문 : 이벤트 모델에 다른 모델 인 "광고"와 일대 다 관계가 있다고 가정 해 보겠습니다. 따라서 하나의 이벤트는 관련된 Ad의 여러 인스턴스를 가질 수 있습니다. '.value()'와의 관계를 표현할 수있는 방법이 있는가? 그래서 나는 내 사전에리스트를 남기고 있는가? – basilikum
@basilikum 아니요, values ()는 모든 고유 조합에 대해 dict를 작성합니다. 따라서 이벤트에 두 개의 광고 객체가있는 관계가있는 경우 이벤트는 각 Ad 객체와 함께 한 번 두 번 반환됩니다. – knbk