Значение "NO" анализируется как "Ложь" в MySQL при вводе через фикстуры Джанго? - PullRequest
1 голос
/ 14 января 2011

В настоящее время я использую Django 1.2.4 и MySQL 5.1 в Ubuntu 9.10.Модель:

# project/cream/models.py

class IceCream(models.Model):
    name = models.CharField(max_length=100)
    code = models.CharField(max_length=5)

    def __unicode__(self):
        return u'%s - %s' % (self.code, self.name)

Данные приборов в файле project/cream/fixtures/data.yaml:

- model: cream.icecream
  pk: 1
  fields:
    name: Strawberry
    code: ST
- model: cream.icecream
  pk: 2
  fields:
    name: Noir Chocolat
    code: NO

Из папки проекта я вызываю команду:

python manage.py loaddata cream/fixtures/data.yaml

Данные успешно загружены в базу данных, но они выглядят следующим образом:

False - Noir Chocolat
ST - Strawberry

Обратите внимание, что первая запись False вместо NO.Кто-нибудь знает, как исправить эту проблему в моих приспособлениях?

1 Ответ

1 голос
/ 14 января 2011

NO обрабатывается как False, поскольку PyYaml неявно определяет это как логическое значение, как показано в resolver.py. Если вы хотите, чтобы это была действительная строка «НЕТ», попробуйте заключить ее в кавычки ("").

...