У меня есть вид, где я позволяю пользователям загружать файлы xls, xlsx и csv. Мои пользователи будут загружать 3 типа данных каждый месяц, но сначала необходимо проверить их набор данных, поэтому я хочу сначала загрузить данные из файлов Excel во временные таблицы. Он работает очень хорошо, пока мне не нужно загружать данные из файлов Excel во временные таблицы.
Django Для метода save_to_database требуется модель, которой у меня нет для временных таблиц. Есть ли способ использовать save_to_database с временными таблицами? Его действительно легко использовать с различными форматами Excel.
В своем коде я передаю строку модели, я знаю, что она не будет работать, но я хотел показать, что именно мне нужно. Я использую SQL Сервер.
Мой взгляд:
def submission_upload(request):
if request.method == "POST":
form = uploadForm(request.POST, request.FILES)
if form.is_valid():
cd = form.cleaned_data
submission_type = cd["submission_type"]
#this should be done with session variables
username = request.META["USERNAME"]
currentUser = User()
entity_id = re.search("[0-9]+",
str(currentUser.get_entity_id(username))).group()
#creating the tmp_table based on the given info
cursor = connection.cursor()
strTable = "[SCLR].[webtmp_" + entity_id + "_" + submission_type +"]"
queryString = "IF OBJECT_ID('" + strTable + "') IS NOT NULL DROP TABLE " \
+ strTable + "; " \
"CREATE TABLE " + strTable + " ( " \
"CID varchar(25), " \
"Product varchar(6), " \
"Account varchar(5), " \
"Amount int) "
cursor.execute(queryString)
cursor.close()
request.FILES["file"].save_to_database(
model=strTable,
mapdict=["CID", "Product", "Account", "Amount"]
)
return render(request, "upload/upload-successful.html")
else:
return HttpResponseBadRequest
else:
form = uploadForm()
return render(request, "upload/submission-upload.html",
{"form": form})