2

以下のように、コアフォルダーに1つのクラスがあります。

class AbstractLine(models.Model):
    basket = models.ForeignKey('basket.Basket', related_name='lines',
                           verbose_name=_("Basket"))

    quantity = models.PositiveIntegerField(_('Quantity'), default=1)

PositiveIntegerFieldここで、数量を次のように変更するために、このクラスをオーバーライドしDecimalFieldます。

from django.db import models
from django.utils.translation import ugettext_lazy as _
from oscar.apps.basket.abstract_models import AbstractLine as ModelLine

class Line(ModelLine):
    quantity = models.DecimalField(_('Quantity'), default=0.25, decimal_places=2, max_digits=3)

どうすればこれを達成できますか?

4

1 に答える 1

1

実際、それは不可能です。この質問を参照してください: In Django - Model Inheritance - Does it allow you to override a parent model's attribute?

同じことが抽象基本クラスにも当てはまります。Django ユーザーのグループに関するこの議論を参照してください。

あなたの最善の策は、単純に基本クラスからフィールドを削除することです。

于 2014-10-01T12:46:51.077 に答える