如何使用Django rest框架实现一对多的嵌套关系?

2024-04-26 05:04:37 发布

您现在位置:Python中文网/ 问答频道 /正文

在这里我提到了我的模型.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)它是一个下拉列表。在

产品

这里包括产品细节,我在预期产出中提到过

税产品

在这个模型中,输入的taxname和percentage应该存储单独的模型。在

^{pr2}$

This is my frontend screen

https://i.stack.imgur.com/aj7oF.png

所以请告诉我怎么做?在


Tags: namepy模型idhttp概念产品description
1条回答
网友
1楼 · 发布于 2024-04-26 05:04:37

根据我们在评论中的讨论,您需要以下内容:

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输出将非常符合您的需要。在

相关问题 更多 >