저는 Django와 Python의 초심자이고, 최근에 Django 문서에서 Model.get_FOO_display()와 같은 많은 메소드를 발견했습니다. 도움말 페이지에서는 FOO 대신 필드 이름을 사용할 수 있다고 말합니다. 나는 그것이 파이썬에서 어떻게 가능한지 알아 내려고 노력해 왔고 '모델'클래스 소스를 들여다 보았다.get_FIELD_display (django에서)는 어떻게 작동합니까?
def _get_FIELD_display(self, field):
value = getattr(self, field.attname)
return force_unicode(dict(field.flatchoices).get(value, value), strings_only=True)
내가가 Python으로 가능 방법을 이해 할 수 없습니다 : 이 난이 건너 왔어요 그래서이
class Person(models.Model):
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
p = Person(name='John', gender='M')
p.get_gender_display()
를 작성하는) 1, 어떻게합니까 파이썬 '변화'FIELD (또는 FOO)를성에 넣으시겠습니까? 일종의 파이썬 '사악한'표기법인가요? (미안하지만 좀 더 명확하게 물을 수 없다) 파이썬 맨 페이지를 가리킨다.
2) 왜 Model 클래스의 소스가 _get_FIELD_display()를 앞에 밑줄로 선언하지만 위에 나온 Python doc 추출물이 밑줄없이 "p.get_gender_display()"라고 쓰는 이유는 무엇입니까? 다시 한번 말하지만, 파이썬 맨 페이지를 주시겠습니까?