programing

단일 필드를 선택하는 장고 모델

nasanasas 2020. 11. 4. 08:03
반응형

단일 필드를 선택하는 장고 모델


호출 된 테이블 / 모델 Employees이 있고 단일 필드의 모든 행을 쿼리 세트로 가져오고 싶습니다.

나는 내가 이것을 할 수 있다는 것을 안다 (내가 이것을 올바르게하고 있기를 바랍니다) :

emp_list = Employees.objects.get(all)
emp_names = emp_list.eng_name

모든 필드에 대해 데이터베이스를 쿼리하고 하나만 사용합니까? 더 나은 (더 빠른) 방법이 있습니까?


Employees.objects.values_list('eng_name', flat=True)

모든 eng_names의 단순 목록을 만듭니다 . 행당 하나 이상의 필드를 원하면 단순 목록을 수행 할 수 없습니다. 그러면 튜플 목록이 생성됩니다.

Employees.objects.values_list('eng_name', 'rank')

이외에도 values_list으로 다니엘이 언급 당신은 또한 사용할 수 있습니다 only(또는 defer반대의 효과에 대한) 그들의 ID와 지정된 필드를 가지는 객체의 검색어를 얻을 수 있습니다 :

Employees.objects.only('eng_name')

이렇게하면 단일 쿼리가 실행됩니다.

SELECT id, eng_name FROM employees

값보다 필수 필드를 선택할 수 있습니다.

Employee.objects.all().values('eng_name','rank')

Oskar Persson의 대답은 데이터를 컨텍스트 로 전달하고 일반 값 목록 대신 개체 인스턴스 (소품을 얻기 위해 쉽게 반복 가능)를 얻을 템플릿 에서 정상적으로 처리하는 것이 더 쉽기 때문에이를 처리하는 가장 좋은 방법 입니다.

그 후 원하는 소품을 쉽게 얻을 수 있습니다.

for employee in employees:
    print(employee.eng_name)

또는 템플릿에서 :

{% for employee in employees %}

    <p>{{ employee.eng_name }}</p>

{% endfor %}

참고 URL : https://stackoverflow.com/questions/7503241/django-models-selecting-single-field

반응형