Django - объединить 3 таблицы, чтобы получить записи - PullRequest
0 голосов
/ 26 апреля 2019

Нужно объединить эти 3 таблицы, может кто-нибудь дать мне набор запросов ORM. необходимо показать записи в одном шаблоне на основе этих трех таблиц.

Models.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()

1 Ответ

0 голосов
/ 26 апреля 2019

Вы можете иметь поле многие ко многим в Order_Table.

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

тогда вы можете запросить модель Order_Table и получить набор запросов

Вы можете просмотреть документацию , чтобы получить больше информации о ManyToMany Поле и о том, как играть с этим

Для форм и просмотра вы можете перейти по этой ссылке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...