Django连接3个表以获取记录

2024-05-16 09:17:04 发布

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

需要加入这3个表,谁能给我ORM查询集。需要基于这三个表在一个模板上显示记录。你知道吗

你知道吗型号.py你知道吗

class Item_Table(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=127)
    description = models.TextField(null=True,blank=True)
    qty_in_ferma_warehouse = models.IntegerField(null=True,blank=True,default=0)
    status = models.BooleanField()
    ListID = models.CharField(max_length=80, null=True,blank=True)


class Order_Table(models.Model):
    id = models.AutoField(primary_key=True)
    order_number = models.CharField(max_length=63)
    notes = models.TextField()
    created_at = models.DateField()
    status = EnumField(Choice,max_length=2, null=True,blank=True)
    Total_Amount = models.DecimalField(max_digits=18,decimal_places=2)
    must_fill_in_items = models.IntegerField()
    total_replenish_small_order = models.IntegerField()
    order_type = EnumField(Choice3,max_length=2, null=True,blank=True)
    delivery_method = EnumField(Choice6, max_length=2, null=True, blank=True)



class Orderitems_Table(models.Model):
    id = models.AutoField(primary_key=True)
    order_id = models.ForeignKey(Order_Table,on_delete='')
    item_id = models.ForeignKey(Item_Table,on_delete='')
    qty = models.IntegerField()
    next_order_qty = models.IntegerField(null=True,blank=True,default=0)
    Rate = models.DecimalField(max_digits=18,decimal_places=2)
    Amount = models.DecimalField(max_digits=18,decimal_places=2)
    status = EnumField(Choice2,max_length=2,null=True,blank=True)
    accumulated_residual_item = models.IntegerField()
    accumulated_damaged_item = models.IntegerField()

Tags: idtruemodelmodelstableordernulllength
1条回答
网友
1楼 · 发布于 2024-05-16 09:17:04

Order_Table中可以有多对多字段。你知道吗

items = models.ManyToManyField(Person, through='Orderitems_Table')

然后您可以查询Order_Table模型并拥有一个queryset

您可以通过documentation了解ManyToMany字段以及如何使用它

对于窗体和视图,您可以遵循this link

相关问题 更多 >