Некоторое поведение, которое я не могу объяснить:
Я следую учебнику djangobook.com и подключил простую устаревшую базу данных mysql.
Я определил модель, как это:Аналогично определенные классы модели django имеют странное поведение
class Sentences(models.Model):
sentenceid = models.IntegerField(primary_key=True)
sentence = models.TextField(blank=True)
class Meta:
db_table = u'sentences'
def __unicode__(self):
return unicode(self.sentence)
class Character(models.Model):
charid = models.IntegerField(primary_key=True)
symbol = models.TextField(blank=True)
class Meta:
db_table = u'characters'
def __unicode__(self):
return unicode(self.symbol)
Довольно стандартные вещи.
Я проверяю доступ к нему через оболочку. Символы возвращаются красиво, но предложения действуют странно, несмотря на то, что они определены (как я думаю) точно так же.
>>> from myapp.models import Character
>>> c = Character.objects.filter(charid=70)
>>> c
[<Character: β>]
Это идеальный вариант, но:
>>> from myapp.models import Sentences
>>> s = Sentences.objects.get(sentenceid=25)
>>> s
<Sentences: Sentences object>
>>> print s
Sentences object
>>> print s.sentence
The quick brown fox jumps over the lazy dog.
Почему не будет ли он вернуть предложение в первом случае Почему я должен использовать s.sentence вместо?
Это слишком долго?
Я обнаружил, что s.sentence работает случайно.
Спасибо за ваш ответ, но он не совсем отвечает на мой вопрос. Я действительно спросил, почему «getter» для Character возвращает, а предложения возвращают , а не с показанным предложением. Возможно, это потому, что он слишком длинный. Они определяются точно так же, поэтому должны возвращаться аналогичным образом. Я не уверен! –
LittleBobbyTables
Вижу, это странно. Я обновил свой ответ, может быть, что-то может помочь вам в этом. – jpic