2017-04-09 93 views
0

我試圖在documentation後目錄應用程序中定製產品和其他幾個模型。django奧斯卡模型定製:模型更改不會反映,同時makemigrations

我已付出目錄應用程序(至MYPROJECT/boscar /目錄下),按照文檔的文檔和我的更新boscar /目錄/ models.py:

from django.db import models 
from oscar.apps.catalogue.abstract_models import AbstractProduct 

class Product(AbstractProduct): 
    is_active = models.BooleanField(default=False) 

from oscar.apps.catalogue.models import * 

我已經列入修改後的目錄應用程序,在將settings.py中的INSTALLED_APPS作爲get_core_apps函數的參數。當我執行此命令manage.py oscar_fork_app目錄boscar

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'rest_framework', 
    'django.contrib.sites', 
    'django.contrib.flatpages', 
    'bmigrate', 
    'compressor', 
    'widget_tweaks', 
    'boscar' 
] + get_core_apps(['boscar.catalogue']) 

遷移會自動複製到我的本地應用程序。

我的問題是,當我執行命令makemigrations(蟒蛇「manage.py makemigrations boscar」),它顯示「在app‘boscar’沒有檢測到變化」。但是我已經做了一個更改,以在產品表中添加is_active字段。

回答

1

我相信你需要參考目錄應用程序遷移時:

python manage.py makemigrations catalogue 
+0

是。有效。謝謝 –

+0

我想將產品id(int)更改爲uuid。我將模型更新爲'id = models.UUIDField(primary_key = True,default = uuid.uuid4,editable = False)'。 現在顯示錯誤。 'django.db.utils.ProgrammingError:列「id」不能自動轉換爲輸入uuid 提示:您可能需要指定「USING id :: uuid」。 –

+0

個人我還沒有嘗試過使用uuid作爲主鍵,但[這裏](http://stackoverflow.com/questions/3936182/using-a-uuid-as-a-primary-key-in-django-models-generic-relations-impact)你可以找到一些信息這樣做。顯然,自django 1.8以來存在一個UUIDField – dentemm