Django не создает таблицы db для моделей (ни с syncdb, ни с South)

У меня есть проект Django на CentOS VPS.

Я создал некоторые модели и отлаживал их, чтобы они проверяли и не выдавали ошибок. У меня есть они в папке «models» в моем myapp и добавили каждую модель в файл инициализации в этом каталоге, например:

из категории импорт Категория

Я добавил приложение в settings.py INSTALLED_APPS и запустил:

 Python manage.py syncdb 

Он, казалось, работал отлично и добавил все таблицы отдельно от тех, которые были для моего приложения.

Затем я установил Юг и добавил это к INSTALLED_APPS и снова попробовал syncdb и запустил:

 Python manage.py schemamigration myapp --initial 

Он сгенерировал файл правильно, но в нем ничего не было (ни одна из таблиц моих моделей).

Пример файла в папке «models» (usertype.py)

 from django.db import models class UserType(models.Model): usertype_id = models.PositiveIntegerField(primary_key=True) description = models.CharField(max_length=100) is_admin = models.BooleanField() is_moderator = models.BooleanField() class Meta: app_label = 'myapp' 

Любые идеи, что здесь может быть неправильным, и почему я не могу ничего обнаружить для своих моделей?

    2 Solutions collect form web for “Django не создает таблицы db для моделей (ни с syncdb, ни с South)”

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

    1. Добавить юг в INSTALLED_APPS
    2. запустить syncdb в первый раз
    3. Добавьте свое приложение в INSTALLED_APPS *
    4. выполните команду инициализации юга:

       python manage.py schemamigration myapp --initial 
    5. мигрировать:

       python manage.py migrate 

    Если вы хотите преобразовать проект:

    1. Запустить syncdb после добавления юга
    2. бег:

      manage.py convert_to_south myapp

    И теперь используйте юг, чтобы управлять своими миграциями.

    * ps – вы можете одновременно добавить как юг, так и свое приложение, если вы хотите, чтобы вы разместили юг перед своими приложениями. Это потому, что django читает INSTALLED_APPS по порядку – он запускает syncdb для всех приложений, но после установки на юг он не будет устанавливать остальных и вместо этого скажет вам использовать южные команды для обработки этих

    редактировать

    Я ввел тебя в заблуждение. Поскольку вы уделяете столько внимания югу, что я не понимал, что проблема заключалась в том, что вы пытались использовать модели в качестве модуля каталогов вместо обычного файла. Это признанная проблема в django , и обходной путь на самом деле точно так же, как вы, в первую очередь:

    скажите, что это ваша структура:

     project/ myapp/ models/ __init__.py bar.py 

    вам нужно bar.py чтобы выглядеть так:

     from django.db import models class Foo(models.Model): # fields... class Meta: app_label = 'myapp' #you need this! 

    и __init__.py должно выглядеть так:

     from bar import Foo 

    Убедитесь, что он выглядит так, и он будет работать.

    ОБНОВЛЕНИЕ 18/08/2014

    Билет изменился на wontfix , потому что, по-видимому, исправлена большая проблема с app_label. Возгласы ликования!

    Выполните следующие команды:

     python manage.py makemigrations yourappname python manage.py migrate 

    Обратите внимание, что он работает на версии django 1.7 для меня.

     
    Interesting Posts for Van-Lav

    регулярное выражение python с проблемой utf8

    pip installation /usr/local/opt/python/bin/python2.7: плохой интерпретатор: нет такого файла или каталога

    Python 3: super () неожиданно вызывает TypeError

    Обнаружение последней итерации по словарю .iteritems () в python

    Как получить win32com-автозаполнение?

    Использование curve_fit для соответствия данным

    Django-admin.py не работает (-bash: django-admin.py: команда не найдена)

    Использовать `rpy2` с пакетами, установленными для` R` в виртуальной среде conda?

    скрипт python mqtt на малине pi для отправки и получения сообщений

    Каков наиболее эффективный способ удалить все пробелы и кавычки из строки с помощью python?

    Python MySQL параметризовал конфликты запросов с символом% wildcard в инструкции LIKE

    Catch stderr в subprocess.check_call без использования subprocess.PIPE

    В Python, как вы можете загружать сопоставления YAML как OrderedDicts?

    Проблема с Panda anaconda conda: обновление пакета anaconda невозможно, поскольку процессы выполняются

    Как отрезать строку каждые 3 индекса?

    Python - лучший язык программирования в мире.