У меня есть несколько моделей, которые используются для одного заказа на обеденный стол. Моя цель состоит в том, чтобы иметь разные обеденные столы, у них всегда общий порядок, а общий заказ имеет индивидуальные заказы.

У меня возникают трудности при создании второго обеденного стола со вторым общим заказом, чтобы не принимать заказы (отношения) с первого стола.

Как я могу сделать общий заказ, в котором есть его собственные заказы, без каких-либо отношений с другими заказами?

Вот мои модели:

class Order(models.Model):
    Beer = models.ForeignKey(Beer, on_delete=models.SET_NULL, blank=True, null=True, related_name='beer')
    SoftDrink = models.ForeignKey(SoftDrink, on_delete=models.SET_NULL, blank=True, null=True, related_name='soft_drink')
    ForeignBeer = models.ForeignKey(ForeignBeer, on_delete=models.SET_NULL, blank=True, null=True,
                                    related_name='foreign_beer')
    Liquor = models.ForeignKey(Liquor, on_delete=models.SET_NULL, blank=True, null=True, related_name='liquor')
    Wine = models.ForeignKey(Wine, on_delete=models.SET_NULL, blank=True, null=True, related_name='wine')
    BarDrink = models.ForeignKey(BarDrink, on_delete=models.SET_NULL, blank=True, null=True, related_name='bar_drink')
    Meal = models.ForeignKey(Meal, on_delete=models.SET_NULL, blank=True, null=True, related_name='meal')


class TotalOrder(models.Model):
    Order = models.ManyToManyField(Order, related_name='order')
    Total_Price = models.DecimalField(default=0, max_digits=6, decimal_places=2)


class Table(models.Model):
    Number = models.IntegerField(unique=True)
    Total_Order = models.ForeignKey(TotalOrder, on_delete=models.SET_NULL, related_name='total_order', blank=True,
                                    null=True)

Заранее спасибо

0
Sonara 29 Окт 2019 в 13:19

1 ответ

Лучший ответ

Если я правильно понимаю вашу модель данных, ваши отношения обратные.

Если один TotalOrder принадлежит одному Table, ForeignKey должен быть определен в модели TotalOrder. То же самое относится к модели Order.

Несколько не связанное с этим примечание, общее соглашение заключается в том, что атрибуты класса записываются в нижнем регистре (например, Table.number, а не Table.Number).

0
Daniel Hepper 29 Окт 2019 в 10:57