Джанго Юг как добавить новую модель

Я впервые использую Django South. Мне уже удалось обновить свою базу данных с помощью Django South, не удаляя всю базу данных. Это был запрос отношение ошибки миграции django south "photo_photo" уже существует

но я сталкиваюсь с ошибкой всякий раз, когда хочу добавить новую модель.Упомянем, что я добавил весь персонал в свой файл admin.py

Приведенный выше запрос касался изменения существующей модели, и, к счастью, я успешно обновил свою базу данных.

Но после выполнения той же команды из Южного учебника я не могу чтобы добавить новую модель в мою базу данных, по-видимому, модель отображается на сайте администратора django, но после того, как я нажму на эту модель или после того, как я хочу сохранить что-либо в этой модели, я сталкиваюсь со следующей ошибкой

DatabaseError at /admin/photo/userreferralcode/
relation "photo_userreferralcode" does not exist
LINE 1: SELECT COUNT(*) FROM "photo_userreferralcode"

Моя модель.py

class UserReferralCode(models.Model):
    owner = models.CharField(max_length=300,blank=True,null=True)
    referral_code = models.CharField(max_length=300,blank=True,null=True)
    created_time = models.DateTimeField(auto_now_add=True)
    updated_time = models.DateTimeField(auto_now=True)

мой admin.py

from app.models import UserReferralCode 

admin.site.register(UserReferralCode)

и я также добавил admin.autodiscover() в свой основной urls.py.

упоминая о новой миграции (поскольку я намеревался добавить новую модель), я шаг за шагом написал следующую команду

первый

python manage.py schemamigration photo --initial

затем второй

python manage.py migrate photo

затем третий

python manage.py schemamigration photo --auto

затем четвертый

python manage.py migrate photo

тогда

python manage.py syncdb

после выполнения всех этих действий модель UserReferralCode была добавлена ​​на сайт администратора django, я ее вижу, но нажав на эту недавно добавленную модель или после сохранения чего-либо в этой модели, я сталкиваюсь с указанной выше ошибкой, я даю ее здесь опять таки.

 DatabaseError at /admin/photo/userreferralcode/
 relation "photo_userreferralcode" does not exist
 LINE 1: SELECT COUNT(*) FROM "photo_userreferralcode" 

упомянем, что мое приложение называется фото

теперь в чем проблема или что мне здесь не хватает.


person Tanveer    schedule 01.03.2015    source источник


Ответы (1)


--initial используется при создании первой миграции для приложения. После этого --auto используется каждый раз, когда вы меняете модели или добавляете новую. (Для другого приложения django вы запускаете --initial с его первой миграцией и так далее)

Итак, учитывая ваш предыдущий вопрос, вы должны применить следующие шаги:

  1. Добавьте Photo и UserCommission к models.py.
  2. python manage.py schemamigration photo --initial.
  3. python manage.py migrate photo.
  4. (Внес изменения и создал для них миграции)
  5. Добавьте UserReferralCode к models.py.
  6. python manage.py schemamigration photo --auto.
  7. python manage.py migrate photo.

Кстати, как только вы привыкнете к migrate, вам не придется использовать syncdb, так как migrate предназначено заменить syncdb более удобным способом.

person Alexey Milogradov    schedule 01.03.2015