Новое в django: ошибка при создании моделей - PullRequest
1 голос
/ 16 января 2011

привет
У меня есть неизвестная ошибка при создании класса модели (проверьте код ниже). Я следую учебному пособию на официальном сайте django, но по какой-то причине он не работает, и я некоторое время боролся за него, но безрезультатно. что-то не так с тем, что я делаю?

>>> class a(models.Model):
...     pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\django-1.1.2-py2.7.egg\django\db\models\base.py", line 52, in __new__
    kwargs = {"app_label": model_module.__name__.split('.')[-2]}
IndexError: list index out of range
>>>

Ответы [ 2 ]

3 голосов
/ 16 января 2011

Модуль, содержащий ваши модели, должен называться myapp.models с точки зрения интерпретатора Python.Эта ошибка означает, что она разрешается как models.

Во-первых, модуль Python, содержащий эту модель, должен находиться внутри папки приложения Django , которая находится в PYTHONPATH.Попробуйте использовать python manage.py startapp, как описано в руководстве.

Если модуль модели определенно находится в папке приложения, убедитесь, что папка приложения сама не является частью PYTHONPATH, а только папка проекта, в которой она находится.

Чтобы уточнить, вот контекст ошибки в источнике django:

        # Figure out the app_label by looking one level up.
        # For 'django.contrib.sites.models', this would be 'sites'.
        model_module = sys.modules[new_class.__module__]
        kwargs = {"app_label": model_module.__name__.split('.')[-2]}
1 голос
/ 16 января 2011

Я думаю, вы не должны определять свои модели в интерпретаторе командной строки, а должны использовать файл приложения с именем models.py, как сказал предыдущий комментатор.Когда django обрабатывает вашу модель, он пытается проанализировать имя приложения модели.В вашем случае модель не имеет никакого применения.Поэтому просто поместите ваши модели в файл myproject/myapplication/models.py, и тогда вы сможете создавать экземпляры моделей в интерпретаторе командной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...