1

Oscar アプリを拡張しようとしているので、フォークしました。この例の行と行に従って、 ProductImageModel クラスにフィールドを追加しようとしています。

from oscar.apps.catalogue.abstract_models import AbstractProductImage    
class ProductImage(AbstractProductImage):
        thumbnail = models.ImageField(upload_to='images/thumbnails/')
from oscar.apps.catalogue.models import * 

runserverエラーが発生します

RuntimeError: Conflicting 'productimage' models in application 
'catalogue': <class 'oscar.apps.catalogue.models.ProductImage'> 
and <class 'forked_apps.catalogue.models.ProductImage'>.

クラスの名前を別のProductImageものに変更すればうまくいくことはわかっていますが、なぜこの例では同じ名前を使用しているのでしょうか? また、将来、新しいクラスではなく既存のクラスにフィールドを追加したいアプリをフォークしたいとします。私が欠けているものはありますか?

4

2 に答える 2

0

そこから何もインポートしない場合oscar.apps.catalogue.models、それらのモデルは登録されていないため、競合は発生しません。そこからモデル(質問には表示されていません)をインポートしていたため、競合が発生しました。

于 2015-08-18T06:36:04.387 に答える