2017-10-24 3 views
0

オスカーが指摘しているローカルフォルダを拾っていないようです。オーバーライド時に競合するモデル

INSTALLED_APP = [] + get_core_apps(['myoscar.partner'])

私のエラーが

Conflicting 'partner' models in application 'partner': <class "oscar.app.partner.models.Partner"> and <class "myoscar.partner.models.Partner">

ですこれはまた別の関連の質問に私をリード - 2つのsettings.pyがあります。私は両方で追加しようとしました。私のメインアプリケーションでmyoscar.partnerを削除すると、明らかにエラーは表示されませんが、オスカーのデフォルトモデルが得られます。それは意味がありますが、追加すると上記のエラーにぶつかります。このオーバーライドの前にパートナモデルを登録する - 少なくとも私が知っているものではない。

私の質問は です。1)settings.pyは正しいですか?確認したい。 2)フォークされたフォルダを指しているときにこのエラーが発生するのはなぜですか?それは私のフォルダをピックアップしていないのですか?

アプリケーション/ myoscar /パートナー/ models.py

from django.contrib.auth import get_user_model 
from django.db import models 
from oscar.apps.partner.abstract_models import AbstractPartner 

User = get_user_model() 

class Partner(AbstractPartner): 
    users = models.OneToOneField(User,related_name='partner_user') 

from oscar.apps.partner.models import * 
#per some answers on stackoverflow, I've also tried removing this but the docs say this should be added here to keep the other models. 

私のフォルダ構造:

App 
|--app 
|----__init.py__ 
|----settings.py 
|----urls.py 
|--myoscar 
|----partner 
|-------models.py 
|----myoscar 
|------settings.py 
|------urls.py 
|--mysub 
|----migrations 

答えて

0

問題はrelated_name値と思われます。別の値を使用してみてください。

+0

興味深いことに全体のポイントがオーバーライドされていましたが、get_model( 'パートナー'、 'パートナー')が表示されても同じオスカーモデルです。 – JamAndJammies

関連する問題