python—如何将模型中的特定字段调用到另一个模型中?

9rbhqvlz  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(394)

我是django的新手。我想知道是否可以将一个模型中的特定字段调用到另一个模型中。
目标是更新数据库中特定产品的数量,并为其生成收据。
下面是一个例子:
models.py:

class Product(models.Model):
   name = models.CharField(max_length=300, null=True)
   price = models.FloatField(null=True)
   quantity = models.IntegerField(default='0', blank=True, null=True)

class UpdateStock(models.Model):
  date = models.DateTimeField(default=timezone.now)
  wayBill_Number = models.CharField(max_length=300, null=True)
  product_Name = models.ForeignKey(Product.name, null=True, on_delete= models.SET_NULL)
  quantity = models.ForeignKey(Product.quantity, null=True, on_delete= models.SET_NULL)

我只想在数据库中选择要更新的产品和数量,但我无法这样做。

h7wcgrx3

h7wcgrx31#

A. ForeignKey 应该引用另一个模型,而不是它的某个字段。
所以,你要做的第一件事就是编辑你的 UpdateStock 以这种方式建模:

class UpdateStock(models.Model):
    date = models.DateTimeField(default=timezone.now)
    wayBill_Number = models.CharField(max_length=300, null=True)
    product = models.ForeignKey('Product', null=True, on_delete=models.SET_NULL) # Here
    quantity = models.IntegerField(default='0', blank=True, null=True) # Here

因此,您可以在创建产品时将其绑定到库存更新:

stock_update = UpdateStock.objects.create(..., product=your_product_obj, ...)

然后,您将能够通过此库存更新访问任何产品的字段:

product = stock_update.product
print(product.quantity)
product.quantity = product.quantity + stock_update.quantity
print(product.quantity)
product.save()

但我强烈建议您在文档中阅读更多关于多对一关系的内容。

相关问题