2017-04-09 1 views
0

J'essaie de personnaliser les produits et quelques autres modèles dans l'application de catalogue suivant le documentation.django oscar personnalisation du modèle: le changement de modèle ne se reflète pas lors de makemigrations

Je application de catalogue en forme de fourche (à myProject/boscar/catalogue) selon la documentation de documentation et ma mise à jour boscar/Catalogue/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 * 

J'ai déjà inclus l'application de catalogue modifié, dans le INSTALLED_APPS dans settings.py en tant qu'argument pour la fonction get_core_apps.

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']) 

sont automatiquement copiés migrations à mon application locale quand je commande manage.py exécuté cette catalogue oscar_fork_app boscar.

Mon problème est lorsque j'exécute la commande makemigrations (python "manage.py makemigrations boscar"), il montre "Aucun changement détecté dans l'application 'boscar'". Mais j'ai déjà fait un changement pour ajouter le champ is_active dans la table des produits.

Répondre

1

Je crois que vous avez besoin de se référer à l'application du catalogue lors de la migration:

python manage.py makemigrations catalogue 
+0

Oui. Ça a marché. Merci –

+0

Je veux changer l'id de produit (int) en uuid. J'ai mis à jour le modèle comme 'id = models.UUIDField (primary_key = True, par défaut = uuid.uuid4, editable = False)'. Maintenant, il montre l'erreur. 'django.db.utils.ProgrammingError: la colonne" id "ne peut pas être convertie automatiquement en type uuid ASTUCE: Vous devrez peut-être spécifier" USING id :: uuid ".' –

+0

Personnellement, je n'ai pas encore essayé d'utiliser un uuid comme clé primaire , mais [ici] (http://stackoverflow.com/questions/3936182/using-a-uuid-as-a-primary-key-in-django-models-generic-relations-impact) vous pouvez trouver quelques informations sur Ce faisant. Apparemment, il existe un UUIDField depuis le django 1.8 – dentemm