2010-07-20 12 views
1

본질적으로 단어 목록 인 Django 모델이 있습니다. 매우 간단하며 다음과 같이 정의됩니다.Django : CharField 객체에서 문자열을 가져 오는 방법은 무엇입니까?

class Word(models.Model): 
    word = models.CharField(max_length=100) 

문자열 개체로 특정 단어가 필요합니다. (간단한 행맨 게임의 경우 단어의 모든 문자를 별표로 바꿉니다.) 그러나 문자열 개체로 단어를 가져올 수 없습니다.

Word 클래스에이 메서드를 추가했지만 그 중 하나가 작동하지 않는 것 같습니다.

def __str__(self): 
    return str(self.word) 

단어 대신 빈 문자열 개체가 나타납니다.

CharField의 값을 문자열 객체로 가져 오려면 어떻게해야합니까? 당신의 도움을 주셔서 감사합니다.

편집 : 나를 괴괴 망측하게하는 것은 정수를 반환하는 데 문제가 없다는 것입니다. 예를 들어 내가 다음과 같이하면 :

word = Word(pk=2821) 
print word.id 

... 해당 레코드의 ID는 2821입니다.

답변

1

Word 개체를 올바르게 가져 오시겠습니까? 예 : word = Word(pk=2821)의 행은 pk이 2821이고 공백이 word 인 새로운 Word 개체를 만듭니다. word 필드에 값이있는 실제 Word 개체를 가져온 경우 word.word 문자열을 반환해야합니다. 예 :

SELECT word FROM yourappname_word LIMIT 20; 

내가 말했듯이, word.word 작동합니다 :

>>>> w1 = Word(pk=5, word='eggs') 
>>>> w1.word 
'eggs' 
>>>> w1.save() 
>>>> w2 = Word.objects.get(pk=5) 
>>>> w2.word 
u'eggs' 

당신은 또한 DB 클라이언트와 연결하고 출력을보고 단어가 올바르게 데이터베이스에 저장되고 있음을 확인할 수 있습니다 따라서 Word 개체를 저장하거나 가져 오는 방법에 문제가있을 수 있습니다.

+0

네, 그게 문제였습니다. 분명히 나는 ​​장고에서 아직 초보자이다. 당신의 도움을 주셔서 감사합니다. – Jeremy

관련 문제