>

오빠의 바용 앱을 만들고 있습니다. 그는 명령을 내리고 책임을 질 것입니다. '음식'과 '주문'모델이 있습니다. 말해 봅시다 :

class Food(models.Model):
    Name = models.CharField(max_length=50)
    Price = models.DecimalField(max_digits=7, decimal_places=2)
    Stock = models.BooleanField()
class Order(models.Model):
    Date = models.DateField(auto_now=True)
    Product = models.ForeignKey(Food, on_delete=models.PROTECT, null=True, blank=True)
    Quantity = models.IntegerField()
    TotalPrice = models.DecimalField(max_digits=7, decimal_places=2)

동일한 순서로 둘 이상의 음식을 추가하는 방법을 알 수 없습니다. 각 음식의 수량도 지정하십시오.

  • 답변 # 1

    귀하의 모델이 여기에 없습니다.3 가지모델이 필요합니다 : Order, Food 및 OrderItem. 각 주문의 음식 항목 목록입니다. 그래서 :

    class Food(models.Model):
        ...
    class Order(models.Model):
        Date = models.DateField(auto_now=True)
        TotalPrice = models.DecimalField(max_digits=7, decimal_places=2)
    class OrderItem(models.Model):
        Order = models.ForeignKey(Order, on_delete=models.PROTECT)
        Product = models.ForeignKey(Food, on_delete=models.PROTECT, null=True, blank=True)
        Quantity = models.IntegerField()
    
    

    이제 주문의 인스턴스가 주어지면 my_order.orderitem_set.all() 를 수행하여 아이템을 얻을 수 있습니다. .

    (참고로, 일반적인 파이썬 스타일은 필드와 같은 속성의 소문자 이름을 갖습니다 : total_price product quantity .)

관련 자료

  • 이전 c - 이전에 이진 추가 된 번호를 지우는 이진 편집
  • 다음 vue.js - Vue js app yarn serve가 종료 코드 1로 실패합니다