아니요, 더 효율적인 방법은 없습니다. 이 경우 데이터베이스를 사용하여 검색 할 수 있습니다.이 경우 모델의 필드를 검색해야하며 그렇지 않으면 수행중인 것처럼 Python을 사용하여 반환 된 행을 검색 할 수 있습니다. 그러나
, 당신의 문자열을 거의 확실하게 -
(. 기본적으로 인덱스로 사용하여 다음 데이터베이스에서 모델 자체에 문자열을 저장하고, 어떤 사람들이 사용하는이 주위에 한 가지 방법은 비정규//입니다) 모델에있는 필드에 대해 일부의 관계가 있습니다. 이상적으로는이 필드에 의해 완전히 결정됩니다. 그게 사실이라면 필드가 무엇인지 결정하기 위해 얻은 문자열을 구문 분석 한 다음 해당 값을 기반으로 데이터베이스에서 조회를 수행 할 수 있습니다.
예제 코드 :
방법`Book.objects.get (이름 = BOOK_NAME)에 대한
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=200)
def __str__(self):
return self.title + ": " + self.author
def parse_book(book_name):
title, author = book_name.split(": ", 1)
try:
return Book.objects.get(title=title, author=author)
except Book.DoesNotExist:
return None
'또는'Book.objects.filter (책 = BOOK_NAME)'? –
이것은 만들어진 예입니다. 다른 모델 조회를 수행하지 않고 실제 모델을 검색하고 키로 사용하기가 어렵습니다. – joeButler
구체적인 예를 제공하십시오. –