Python Django中的产品订单/采购模型

Python Django中的产品订单/采购模型,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我有一个带有名称、描述、货币、价格、供应商和图像字段的产品模型,我正在尝试实现订购项目,但我在这方面遇到了一些麻烦 基本上,我想要的是能够访问admin中的Orders模型,并添加订单号、客户名称(我已经实现了这两个),以及一些每个产品都有数量的产品 #models.py 从django.db导入模型 类别供应商(models.Model): name=models.CharField(最大长度=30) 定义(自我): 返回self.name 类别产品(型号.型号): 货币=[ (“$”、“美元

我有一个带有名称、描述、货币、价格、供应商和图像字段的产品模型,我正在尝试实现订购项目,但我在这方面遇到了一些麻烦

基本上,我想要的是能够访问admin中的Orders模型,并添加订单号、客户名称(我已经实现了这两个),以及一些每个产品都有数量的产品

#models.py
从django.db导入模型
类别供应商(models.Model):
name=models.CharField(最大长度=30)
定义(自我):
返回self.name
类别产品(型号.型号):
货币=[
(“$”、“美元($)”),
]
name=models.CharField(最大长度=40)
description=models.TextField()
currency=models.CharField(最大长度=5,选项=currency,默认值为“$”)
price=models.DecimalField(最大位数=10,小数位数=2)
供应商=模型.ForeignKey(供应商,on_delete=模型.CASCADE)
image=models.ImageField(默认值=“not\u found.jpg”)
定义(自我):
返回self.name
类别客户(models.Model):
name=models.CharField(最大长度=30)
出生日期=models.DateField()
定义(自我):
返回self.name
类顺序(models.Model):
订单号=型号.CharField(最大长度=20)
customer=models.ForeignKey(customer,on_delete=models.CASCADE)
我的尝试/解决方案:
  • 向产品添加ManyToManyField(无数量)
  • 使用fk创建ProductInstance类到product and order(数量已添加,但您必须访问admin中的两个不同页面,并且您无法在admin的orders页面中看到项目)
  • 是否有其他方法可以实现这一点,或者我是否坚持使用第二种解决方案?这样做并不可怕,但我宁愿避免这样做,并且能够在订单页面上添加项目

    如果我听起来像个乞丐,我很抱歉。我真的不是,但我不能造出听起来很好的句子

    编辑:我找到了我需要的! 使用我提到的第二个解决方案,我创建了一个名为ProductInstance的类,后来将其重命名为OrderProduct,并创建了以下字段:

  • 外国产品密钥
  • 外国订单
  • 数量的整数域
  • order
    类具有以下字段:

  • 订单号的CharField
  • 客户外键
  • 许多人通过OrderProduct购买产品
  • 然后,我在admin.py中添加了以下内容:

    #admin.py
    ...
    类OrderInlines(管理员列表行):
    模型=订单产品
    fk_name=“订单”
    额外=1
    @管理员注册(订单)
    类OrderAdmin(admin.ModelAdmin):
    字段=(‘订单号’、‘客户’、)
    inlines=(OrderInlines,)