소개
데이터베이스 쿼리에는 종종 여러 테이블 조인이 포함됩니다. 관련 데이터에 액세스할 수 있는 테이블입니다. Django에서는 select_관련() 메서드를 사용하여 이러한 조인을 수행할 수 있습니다. 이 문서에서는 select_관련()을 사용하여 Django에서 내부 조인을 수행하고 출판과 관련된 도시, 주 및 국가 이름을 표시하는 방법을 보여줍니다.
모델에서 테이블 연결
models.py 파일은 다양한 테이블에 대한 데이터베이스 모델 클래스를 정의합니다.
<code class="python">class Country(models.Model): country_name = models.CharField(max_length=200, null=True) class CountryState(models.Model): state_name = models.CharField(max_length=200, null=True) country = models.ForeignKey(Country, on_delete=models.CASCADE, null=True) class City(models.Model): city_name = models.CharField(max_length=200, null=True) countrystate = models.ForeignKey(CountryState, on_delete=models.CASCADE, null=True) class Publication(models.Model): country = models.ForeignKey(Country, on_delete=models.CASCADE, null=True) countrystate = models.ForeignKey(CountryState, on_delete=models.CASCADE, null=True) city = models.ForeignKey(City, on_delete=models.CASCADE, null=True)</code>
뷰에서 출판물 가져오기
출판물() views.py의 보기는 출판물을 가져옵니다.
<code class="python">def publications(request): mypublications = publication.objects.filter(user_id=request.session['account_id']) return render(request, 'blog/mypublications.html', {'plist': mypublications})</code>
select_관련()으로 내부 조인 수행
내부 조인을 수행하려면 select_관련() 메서드를 사용할 수 있습니다. 다음과 같습니다:
<code class="python">pubs = publication.objects.select_related('country', 'country_state', 'city')</code>
이 줄은 Publication 테이블을 Country, CountryState 및 City 테이블과 결합하고 나중에 사용할 수 있도록 미리 로드합니다.
관련 데이터 액세스
조인이 완료되면 모델 객체를 통해 관련 데이터에 접근할 수 있습니다. 예를 들어 템플릿에서는 다음과 같습니다.
<code class="html">{% for p in pubs %} {{ p.city.city_name}} # p.city has been populated in the initial query # ... {% endfor %}</code>
select_관련() 사용의 이점
위 내용은 Django에서 select_관련()을 사용하여 여러 테이블의 도시, 주 및 국가 세부 정보를 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!