vor*_*pyg 4 python django django-admin inline-editing
在完成Django教程之后,我现在正在尝试构建一个非常简单的开票应用程序.
我想在发票中添加几个产品,并在Django管理员的发票表单中指定每个产品的数量.现在,如果我有相同产品的不同数量,我将创建一个新的Product对象.
现在我的模型看起来像这样(公司和客户模型遗漏了):
class Product(models.Model):
description = models.TextField()
quantity = models.IntegerField()
price = models.DecimalField(max_digits=10,decimal_places=2)
tax = models.ForeignKey(Tax)
class Invoice(models.Model):
company = models.ForeignKey(Company)
customer = models.ForeignKey(Customer)
products = models.ManyToManyField(Product)
invoice_no = models.IntegerField()
invoice_date = models.DateField(auto_now=True)
due_date = models.DateField(default=datetime.date.today() + datetime.timedelta(days=14))
Run Code Online (Sandbox Code Playgroud)
我想数量应该从产品模型中排除,但如何在发票模型中为其创建一个字段?
您需要稍微更改模型结构.如您所知,数量不属于产品型号 - 它属于产品和发票之间的关系.
要在Django中执行此操作,您可以将ManyToMany关系与through表一起使用:
class Product(models.Model):
...
class ProductQuantity(models.Model):
product = models.ForeignKey('Product')
invoice = models.ForeignKey('Invoice')
quantity = models.IntegerField()
class Invoice(models.Model):
...
products = models.ManyToManyField(Product, through=ProductQuantity)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3111 次 |
| 最近记录: |