MyModel.objects.filter(othermodel__nr='foo')
으로 내 모델을 쿼리 할 수 있습니다.Django ORM : 필터 조회를 통해 필드의 verbose_name 가져 오기
잘 작동합니다.
나는 verbose_name 필드에 있습니다.
예 : 위의 예는 쉽게 내가 OtherModel
에 액세스 할 수 있습니다,하지만 난 그게 일반적인하고 싶으면 이후에
class OtherModel(models.Model):
nr=models.IntegerField(verbose_name='Number')
.
여기서 "키"에 사용 된 필드의 자세한 이름을 얻는 방법은 무엇입니까?
MyModel.objects.filter(**{key: value})
나는 이중 밑줄을 해결하는 방법을 검색 할 수 있습니다. 이 예제에서는 "othermodel__nr"을 (예를 들어) "Number"로 설정합니다.
위의 예에서 업데이트
나는 참조 모델 OtherModel
것을 알고있다. 하지만 모든 문자열에 사용할 수있는 솔루션을 검색합니다. 이에 대한 ORM 필터링 필요한 이유를 이해가 안
get_verbose_name(str_containing_three_double_underscores) --> MyVerboseName
나는 본다. 당신은'lookup.split (LOOKUP_SEP)'를 사용하여 그것을 파싱한다. 좋아 보이고 ... 작동합니다. 고맙습니다. 나는 그것을 단순화하기 위해 작은 부분을 발견했다. 나는 너의 대답을 업데이트 할거야, 알았지? – guettli
@guettli'LOOKUP_SEP'은'__'입니다. 그것은 단지 더 많은 DRY 이런 식으로)) –
@ guettli 왜 매니저 부분을 삭제 했습니까? –