0
이 문제는 나를 미치게합니다.Django - select_related 필드에 액세스하는 중
이class EmployeeUnique(models.Model):
person_unique = models.OneToOneField(PersonUnique, on_delete=models.CASCADE, primary_key=True, related_name = 'employee_unique')
class Meta:
managed = False
db_table = 'employee_unique'
class PersonUnique(models.Model):
birthdate = models.DateField(blank=True, null=True)
class Meta:
managed = False
db_table = 'person_unique'
class PersonDetails(models.Model):
person_unique = models.ForeignKey('person.PersonUnique', on_delete=models.CASCADE)
first_nm_rus = models.CharField(max_length=200)
class Meta:
managed = False
db_table = 'person_details'
템플릿 :
이{% for e in employee_unique_table %}
<tr class='clickable-row' style = 'cursor:pointer' data-href="/employee_profile_main/{{e.person_unique_id}}/">
<td>
{% for p in e.person_unique.person_details.all %}
<div>{{p.first_nm_rus}}</div>
{% endfor %}
</td>
뷰가 :
def my_view(request):
employee_unique_table = EmployeeUnique.objects.\
prefetch_related('employee_legal_entity__employee_category',
'person_unique').select_related()
내 오류를 생성하지 않는 API하지만 그냥 표시되지 않습니다 나는 장고 ORM 모델이 사람의 first_nm_rus. 그것은 비어 있습니다!
환상적. 그래서 관련 이름을 prefetched_related뿐만 아니라 select_related로 지정해야합니까? 나는이 이중화가 무엇을 위해 만들어 졌는지 이해하지 못한다. 나는 외래 키를 지정한다. 그러면 related_names가 필요한 이유는 무엇입니까? –
'related_name'은 릴레이션의 이름입니다 (리버스). 쿼리 중에 관련 객체의 값을 가져오고 싶다면'select_related'를 사용하여 알려 주어야합니다. 자세한 내용은 http://stackoverflow.com/questions/을 참조하십시오. 2642613/django 및 https://docs.djangoproject.com/en/1.9/topics/db/queries/#backwards-related-objects에 사용되는 관련 이름 – trinchet