手持ち在庫を計算するために、計算フィールドをマテリアルモデルに追加しようとしています
このために、私は他の3つのアプリにあるモデルにアクセスしようとしています:アプリの在庫、販売、購入。
インポートする代わりに、アプリ名をオブジェクトとして使用します。クロスインポートが許可されていないため、インポートできません。
しかし、グローバル名「在庫」が定義されていないというエラーが常に発生します。
私は何が間違っているのですか?一般的にこのようにできますか?
@with_author
class Material(models.Model):
version = IntegerVersionField( )
code = models.CharField(max_length=30)
name = models.CharField(max_length=30)
slug = models.SlugField(max_length=80, blank=True)
description = models.TextField(null=True, blank=True)
materialuom = models.CharField(max_length=1,
choices=UOM_CHOICES)
creation_time = models.DateTimeField(auto_now_add=True, blank=True)
itemgroup = models.ForeignKey(ItemGroup, on_delete=models.PROTECT)
keywords = models.CharField(max_length=50,null=True, blank=True)
valid_from = models.DateTimeField(null=True, blank=True)
valid_to = models.DateTimeField(null=True, blank=True)
min_quantity = models.DecimalField(max_digits=19, decimal_places=10)
trigger_quantity = models.DecimalField(max_digits=19, decimal_places=10)
max_quantity = models.DecimalField(max_digits=19, decimal_places=10)
active = models.BooleanField(default=True)
is_production = models.BooleanField(default=True)
def _get_total(self):
# "Returns the total"
return inventory.Inventory.objects.filter(material_id=self.id ).aggregate(Sum('quantity')) + purchase.PO.objects.filter(material_id=self.id).aggregate(Sum('quantity')) - sales.SO.objects.filter(material_id=self.id ).aggregate(Sum('quantity'))
total = property(_get_total)
_get_total関数で必要なモデルをローカルにインポートしてみることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加