Я пытаюсь загрузить данные из внешнего API в мою модель Django. Как я могу предотвратить дублирование данных при каждом извлечении. Это API POS ресторана, и поэтому, когда клиент заказывает новые товары, они добавляются к счету. JSON Object
Пример:
После заказа напитков официант вводитПорядок для 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"
}
]
У меня есть эти таблицы в моих models.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_Items к Bill_ID, пока статус Bill_ID равен «Открыто», как только он «Закрыт», необходимо создать новый Bill_ID для этой таблицы с тем же Table_ID.
Чтобы проиллюстрировать, что я имею в виду. Допустим, Table_ID = 1 в ресторане, который открыт для завтрака, люди получают еду и платят. Все эти продукты хранятся в Bill_Items с Bill_ID = 1, а затем Bill_Status устанавливается на закрытие. Затем для обеденного обслуживания снова открывается Table_ID 1, на этот раз с Bill_ID = 2, и все продукты питания, заказанные на обед, сохраняются в Bill_Items с Bill_ID = 2. и так далее, и так далее.
Надеюсь, я правильно объяснил свое затруднительное положение? Любая помощь будет принята с благодарностью, я сижу на этой проблеме некоторое время.
Спасибо.