2015-04-10 2 views
1

Django 1.8 не похоже на мое имя приложения - «заказы».Django 1.8 weirdness миграции

Когда я создаю новый проект Django с использованием 1.8, независимо от типа базы данных (Postgres или SQLite), синхронизируйте мою исходную базу данных, чтобы добавить все основные таблицы Django. Все работает так, как ожидалось.

Я могу создать модуль приложения, используя только о каком-либо другом имени, но когда я делаю:

$ python manage.py startapp orders 

добавить orders к INSTALLED_APPS, а затем добавить базовую модель, такие как:

from django.db import models 

@python_2_unicode_compatible 
class Order(models.Model): 
    created_on = models.DateTimeField(auto_now_add=True) 
    account = models.ForeignKey(Account) 
    is_complete = models.BooleanField(default=False) 

    class Meta(): 
     app_label = 'Orders' 
     ordering = ['-created_on'] 

    def __str__(self): 
     return 'Order #{} for {}'.format(self.pk, self.account) 

и затем сделать:

$ python manage.py makemigrations 

я получаю:

No changes detected in app 'orders' 

Я пробовал Python 2.7.8 и Python 3.4. Я пробовал разные виртуальные envs, и получаю точно такой же результат, независимо от того, что я называю проектом Django. Если я даже включу «_orders» в любом месте имени модуля приложения, то будет точно такой же результат.

Я очистил свои файлы .pyc бесчисленное количество раз. Я удалил свою базу данных и заново создал ее. Я понятия не имею, что происходит, но миграция отлично поработала для огромного проекта 1.7.7, который я только что закончил.

Вот соответствующие части моих настроек. Пожалуйста, дайте мне знать, если вам нужно что-нибудь еще:

DEBUG = True 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'myapp', 
     'USER': 'postgres', 
     'PASSWORD': '', 
     'HOST': '127.0.0.1', 
     'PORT': '5432' 
    } 
} 

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 

    'accounts', 
    'animals', 
    'lib', 
    'orders', 
) 

У кого-нибудь есть идеи? Я в недоумении.

+0

Каков вывод заказов на импорт «python -c», print (orders .__ path __) »? Можете ли вы также показать свой файл настроек? Приложение под названием 'orders' отлично работает для меня. – knbk

+0

Извините, что задержка вернулась к вам. Вывод: '['orders']'. Я добавлю соответствующие части моих настроек. – Brandon

+0

Это выглядит хорошо. Можете ли вы импортировать модель в оболочку и содержать что-либо в 'MyModel._meta.get_fields()'? Кроме того, есть ли файлы в 'orders/migrations /' и что в них? – knbk

ответ

2

Ваш ярлык приложения находится в верхнем регистре - он не распознается как приложение с нижним регистром orders, как оно указано в вашем INSTALLED_APPS.

+3

'me.facepalm (hands = 2)' - спасибо :) – Brandon

Смежные вопросы