2 테이블, simpleDB_all 및 simpleDB_some이 있습니다. "모든"테이블에는 원하는 모든 항목에 대한 항목이 있지만 "일부"테이블에는 추가 정보가 필요한 일부 항목에 대한 항목 만 있습니다. 이들에 대한 장고 모델은 다음과 같습니다Django의 OneToOne 필드에 왼쪽으로 결합
class all(models.Model):
name = models.CharField(max_length=40)
important_info = models.CharField(max_length=40)
class some(models.Model):
all_key = models.OneToOneField(all)
extra_info = models.CharField(max_length=40)
가 나는 그것이 "일부"에있는 경우 추가 정보와 "모든"의 모든 항목을 표시하는 뷰를 생성하고 싶습니다.
allitems = all.objects.all()
for item in allitems:
print item.name, item.important_info, item.some.extra_info
을하지만 난 항목에 도착하면 "일부"테이블 I에 해당 항목이하지 않는 : 나는 1-1 필드를 사용하고 있기 때문에 나는 거의 완전한 성공이 작업을 수행 할 수 있습니다 DoesNotExist 예외를 얻습니다.
이상적으로 나는이 루프를 템플릿 내부에서 수행 할 것이므로 "try"절 주위를 감싸는 것은 불가능합니다. 이견있는 사람?
나는 다음과 같은 쿼리를 사용하여 SQL에서 직접 원하는 효과를 얻을 수 있습니다 :
SELECT all.name, all.important_info, some.extra_info
FROM all LEFT JOIN some ON all.id = some.all_key_id;
그러나 나는 오히려 원시 SQL을 사용하지 것입니다.
이것은 효과가있을 수 있습니다. 제안을 주셔서 감사합니다 ... 내가 다시 응용 프로그램의 그 부분에 도착하면 자동으로 양식을 확인 "나는 옳은 일을"나는 돌아와서 대답으로 표시합니다. 감사. – jamida