Django/Postgresql последовательность не устанавливается при создании объектов в представлениях
Я написал представление, которое загружает файл excel как кадр данных и использует этот кадр для создания или обновления записей в базе данных Postgresql. Но я не могу понять, почему последовательность записей в Postgresql не обновляется? Это приводит к ошибке базы данных при попытке добавить другие записи через формы администратора.
Мой стек: Django 2.2.5/Python 3.7.4/Docker/Docker-compose/Postgresql Используется 2 модели: PData (86 записей) и PForm (22 записи), с PData_ide_seq и PForm_ide_seq, соответственно
Когда я проверяю PForm_ide_seq, текущее значение равно 1 вместо 22
Что происходит?
@login_required
def update_parameters(request):
if request.is_ajax() and request.method == "POST":
if ParametersFile.objects.all():
LAST_PARAMETER_FILE = ParametersFile.objects.all().last().upload
dcf_queries = pd.read_excel(f'./{ LAST_PARAMETER_FILE }',sheet_name='data_queries_definitions').fillna('')
missing_forms_queries = pd.read_excel(f'./{ LAST_PARAMETER_FILE }',sheet_name='form_queries_definitions').fillna('')
print(LAST_PARAMETER_FILE)
for record in dcf_queries.to_dict(orient='records'):
PData.objects.update_or_create(
ide=record['ide'], # filter to search for existing objects => should not be pass to default (if not IntegrityError)
defaults = {
'query_type':record['query_type'],
'crf_name':record['crf_name'],
'crf_table':record['crf_table'],
'variable_name':record['variable_name'],
'variable_label':record['variable_label'],
'query_condition':record['query_condition'],
'query_message':record['query_message'],
'fields_to_display':record['fields_to_display'],
'activated': True if record['activated'] == 1 else False,
}
)
for record in missing_forms_queries.to_dict(orient='records'):
PForm.objects.update_or_create(
ide=record['ide'], # filter to search for existing objects => should not be pass to default (if not IntegrityError)
defaults = {
'query_type':record['query_type'],
'source_form':record['source_form'],
'source_condition':record['source_condition'],
'search_form':record['search_form'],
'search_condition':record['search_condition'],
'query_message':record['query_message'],
'activated': True if record['activated'] == 1 else False,
}
)
return JsonResponse({"response": "Queries definitions table updated",}, status=200)
else:
return JsonResponse({"response": "No parameters file",}, status=200)
return JsonResponse({"response": "Not ajax",}, status=200)