Как правильно настроить модель формы с несколькими иностранными ключами - PullRequest
0 голосов
/ 22 апреля 2019

Я делаю цифровое меню, где вы можете сделать заказ.Однако у меня возникают некоторые проблемы с правильной настройкой форм и представлений.

В Ордене есть две иностранные клавиши.FKtable получается через GET.Однако проблема заключается в FKmenuitem.

У Menuitem есть чужой ключ для FKitem, что означает, что через сообщение необходимо создать объект Menuitem, прежде чем можно будет создать объект Order.

Я не уверен, каклогика в представлении должна быть сделана для правильной обработки.

Вот модель, показанная на рисунке.

class Table(models.Model):
    number = models.IntegerField(blank=False)

    def __str__(self):
        return f'Tafel nummer {self.number}'


class Category(models.Model):
    category_name = models.CharField(max_length=255)

    def __str__(self):
        return self.category_name


class Item(models.Model):
    item_name = models.CharField(max_length=255)
    item_price = models.DecimalField(max_digits=5, decimal_places=2)
    item_description = models.TextField(max_length=255)
    FKcategory = models.ForeignKey(Category, on_delete=models.CASCADE)

    def __str__(self):
        return self.item_name


class Menuitem(models.Model):
    FKitem = models.ForeignKey(Item, on_delete=models.CASCADE)
    quantity = models.IntegerField()

    def __str__(self):
        return f'{self.FKitem.item_name} - {self.quantity}'


class Order(models.Model):
    FKtable = models.ForeignKey(Table, on_delete=models.CASCADE)
    FKmenuitem = models.ManyToManyField(Menuitem)
    prepped = models.BooleanField(default=False)
    delivered = models.BooleanField(default=False)
    paid = models.BooleanField(default=False)

    def __str__(self):
        return f' Bestelling voor {self.FKtable}'
...