Arun SS
Arun SS

Reputation: 1911

django oscar commerce: Conflicting 'stockrecord' models in application

I am using oscarcommerce for my django project. I want to extend the "StockRecord" model to include some more fields. So I forked the partner app as follows. (boscar is my app name)

python manage.py oscar_fork_app partner boscar/ 

It successfully forked and new files were added to boscar/partner folder. I added 'boscar.partner' in my installed apps.

Now I added new fields in StockRecord models as follows

boscar/partner/models.py

from django.db import models
from oscar.apps.partner.abstract_models import AbstractStockRecord


class StockRecord(AbstractStockRecord):
    effective_price = models.FloatField(default=0, null=True)
    is_instock_item = models.BooleanField(default=False, null=True)
    instock_quantity = models.IntegerField()

from oscar.apps.partner.models import *  # noqa

Now when I try to make migrations it shows the following error.

RuntimeError: Conflicting 'stockrecord' models in application 'partner': <class 'oscar.apps.partner.models.StockRecord'> and <class 'boscar.partner.models.StockRecord'>.

I already successfully forked the catalogue and order models and that are working fine. Only this "StockRecord" models showing this error.

Upvotes: 0

Views: 583

Answers (1)

Craig Loftus
Craig Loftus

Reputation: 205

That error can occur as a result of a circular import issue associated with Oscar's support for overriding models and classes.

You need to check for places where you're importing directly from oscar.apps.partner.models. These should be replaced by importing from boscar.partner.models or using oscar.core.loading.get_model.

Upvotes: 0

Related Questions