我正在尝试将来自外部api的数据加载到django模型中。如何防止每次提取数据时重复数据。这是一种餐厅POS API,因此当客户订购新商品时,他们将被添加到账单JSON对象中
示例:
点酒后,服务员将订单输入POS,API端点如下:
[
{
"pk": 1,
"Description": "Coca Cola",
"Price": "5.95"
},
{
"pk": 2,
"Description": "Water",
"Price": "3.50"
}
]
然后服务员返回以接收客户的食物订单并将其输入到POS,然后api端点如下所示:
[
{
"pk": 1,
"Description": "Coca Cola",
"Price": "5.95"
},
{
"pk": 2,
"Description": "Water",
"Price": "3.50"
},
{
"pk": 3,
"Description": "Pizza",
"Price": "12.00"
},
{
"pk": 4,
"Description": "Pasta",
"Price": "11.50"
}
]
我的模型中有这些表。py
class Restaurant(models.Model):
Name
Address
class Table(models.Model):
Restaurant_ID -> (ForeignKey From Restaurant)
Table_Number
API_Endpoint
class Bill(models.Model):
Table_ID -> (ForeignKey from Table)
Bill_Status -> Binary field Can be 'Open' or 'Closed'
Date -> DateTime of bill closed
class Bill_Items(models.Model):
Bill_Item_ID -> (ForeignKey from Bill)
Description
Price
Payment_Made
Date
def get(self,request):
url = Table.['API_Endpoint']
r = requests.get('url')
bill_items = r.json()
Bill_Items.Description = bill_items.['Description']
Bill_Items.Price = bill.items.['Price']
return (Bill_Items.Description, Bill_Items.Price)
在此示例中,当食品订单后重新读取JSON对象时,如何确保饮料订单不会重复?
我的模型?
也许我的数据库设计对于此问题是不正确的,为什么会出现重复?我之所以这样设计,是因为当Bill_ID状态为“打开”时,我需要能够将Bill_Items添加到Bill_ID,一旦“关闭”,则需要使用相同的Table_ID为该表创建一个新的Bill_ID。 / p>
说明我的意思。假设某餐厅的Table_ID = 1,开始提供早餐服务,人们得到食物并付款。所有这些食品都以Bill_ID = 1存储在Bill_Items中,然后将Bill_Status设置为关闭。然后,对于午餐服务,再次打开Table_ID 1,这次的Bill_ID = 2,并且午餐时订购的所有食品都以Bill_ID = 2的形式存储在Bill_Items中,依此类推。
我希望我已经正确解释了我的困境?任何帮助将不胜感激,我一直在这个问题上坐了一段时间。
谢谢。