gpt4 book ai didi

python - 如何使用 django rest 框架建立一对多的嵌套关系?

转载 作者:太空宇宙 更新时间:2023-11-04 02:28:20 24 4
gpt4 key购买 nike

这里我提到了我的 model.py 和 serilaizers.py 我想在这里使用一对多的概念。我的预期输出是这样的

预期输出

  {
"id": 1,
"product_name": "Rice",
"description": "expired on 13-04-2018",
"sales": "55",
"cost": "55",
"tax_details": [
{'id': 1, 'tax_name': "http://127.0.0.1:8000/tax/1/", 'percentage': 10},
{'id': 2, 'tax_name': "http://127.0.0.1:8000/tax/3/", 'percentage': 20},
{'id': 3, 'tax_name': "http://127.0.0.1:8000/tax/2/", 'percentage': 05},
... ],
}

模型.py

税收模型

这是这里的主要税表,我会提到税名,例如(IGST、GST、VAT),这是一个下拉列表。

产品

这里包含产品详细信息,我在预期输出中提到过

税收产品

在此模型中,输入的税名和百分比应存储单独的模型。

  class tax(models.Model)
tax_name = models.CharField(max_length=250)
percentage=models.CharField(max_length=250)

class Taxproduct(models.Model):
tax_name = ForeignKey(tax,on_delete=models.CASCADE)
percentage = models.CharField(max_length=3)

class Product(models.Model):
product_name = models.CharField(max_length=25)
description = models.CharField(max_length=150)
category = models.ForeignKey(Category,on_delete=models.CASCADE)
sales = models.CharField(max_length=25)
cost = models.CharField(max_length=25)
tax_details = models.CharField(max_length=250)

This is my frontend screen

/image/aj7oF.png

所以请告诉我该怎么做?

最佳答案

根据我们在评论中的讨论,您需要这样的东西:

class Tax(models.Model)
name = models.CharField(max_length=250)
percentage = models.CharField(max_length=250)

class Product(models.Model):
product_name = models.CharField(max_length=25)
description = models.CharField(max_length=150)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
sales = models.CharField(max_length=25)
cost = models.CharField(max_length=25)

class TaxProduct(models.Model):
tax = ForeignKey(Tax, on_delete=models.CASCADE)
percentage = models.CharField(max_length=3)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
related_name="tax_details")

这大致是一个多对多的关系,通过表。

产品将有一个 tax_details 字段,该字段引用税及其有效百分比,如您所问。 DRF JSON 输出几乎就是您想要的。

关于python - 如何使用 django rest 框架建立一对多的嵌套关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49813584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com