Django: не удается загрузить текстовый файл - PullRequest
1 голос
/ 29 апреля 2010

Сделал дампданные моего проекта, затем в своем новом тесте я добавил их в фикстуры.

from django.test import TestCase

class TestGoal(TestCase):
    fixtures = ['test_data.json']

    def test_goal(self):
        """
        Tests that 1 + 1 always equals 2.
        """
        self.failUnlessEqual(1 + 1, 2)

При запуске теста я получаю:

Проблема с установкой светильника 'XXX / приборы / test_data.json':

DoesNotExist: XXX соответствует запросу не существует.

Но ручное выполнение loaddata работает нормально не работает, когда БД пуста. Я делаю dropdb, создал простой syncdb, попробуйте загрузить данные, и это не получится, та же ошибка.

Любая подсказка?

Python версия 2.6.5, Django 1.1.1

1 Ответ

4 голосов
/ 01 мая 2010

Возможно, у вас проблемы с внешним ключом. Если у вас есть модель, которая содержит внешний ключ, относящийся к другой модели, но другой модели не существует, вы получите эту ошибку.

Это может произойти по нескольким причинам: если вы указываете на модель в другом приложении, которую вы не включили в дамп test_data.json, у вас будут проблемы.

Кроме того, при изменении внешних ключей это может нарушить сериализацию - это особенно проблематично для автоматически создаваемых полей, таких как права доступа или родовые отношения . Django 1.2 поддерживает естественные ключи , которые являются способом сериализации с использованием «естественного» представления модели в качестве внешнего ключа, а не идентификатора, который может измениться.

...