【发布时间】:2021-05-21 07:38:52
【问题描述】:
所以我在我的项目中使用 django admin,在我的项目开发过程中我已经有一些列,随着时间的推移,列从 2 减少到 1,列名也发生了变化。所以我对代码进行了更改,但我无法写信给 django admin。 inn django 管理 UI 或在 django 代码中。它说桌子不存在
admin.py
from django.contrib import admin
from .models import SalesforceTicket, UploadedFiles
# Register your models here.
admin.site.register(SalesforceTicket)
admin.site.register(UploadedFiles)
views.py
def files(request):
num_of_files = 1
filled_multi_file_form = MultipleForm(request.GET)
if filled_multi_file_form.is_valid():
num_of_files = filled_multi_file_form.cleaned_data['num_of_files']
FilesFormSet = formset_factory(FilesForm, extra=num_of_files)
formset = FilesFormSet()
if request.method == 'POST':
filled_form = SnippetForm(request.POST, request.FILES)
filled_formset = FilesFormSet(request.POST, request.FILES)
if filled_form.is_valid() and filled_formset.is_valid():
SalesforceTicket = filled_form.save(commit=False)
SalesforceTicket.save()
SalesforceNumber = filled_form.cleaned_data['SalesforceNumber']
for form in filled_formset:
data = form.save(commit=False)
data.SalesforceTicket = SalesforceTicket
data.save()
file = form.cleaned_data['files_to_upload']
path = form.cleaned_data['path']
server = form.cleaned_data['server']
note = 'File Uploaded Successfully !!'
filled_form = SnippetForm()
filled_formset = FilesFormSet()
else:
note = 'Please try again!'
return render(request, 'myforms/files.html',
{'note': note, 'SnippetForm': filled_form, 'formset': filled_formset})
else:
form1 = SnippetForm()
filled_formset = FilesFormSet()
return render(request, 'myforms/files.html', {'SnippetForm': form1, 'formset': filled_formset})
forms.py
from django import forms
from .models import SalesforceTicket, UploadedFiles
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
import os, pathlib
import logging
class SnippetForm(forms.ModelForm):
class Meta:
model = SalesforceTicket
fields = ['SalesforceNumber']
class FilesForm(forms.ModelForm):
class Meta:
model = UploadedFiles
fields = ['files_to_upload', 'path', 'server']
def clean(self):
cleaned_data = super(FilesForm, self).clean()
#files_to_upload = cleaned_data.get("files_to_upload")
path = cleaned_data.get("path")
server = cleaned_data.get("server")
new_path = path.replace(':', '$', 1)
# print(new_path)
mode = 0o666
for s in server:
s = r'\\' + s
unc_path = os.path.join(s, new_path)
print("hello"+unc_path)
#unc_path = os.mkdir(unc_path, mode)
isdir = os.path.isdir(unc_path)
if isdir:
print("ok")
else:
unc_path = os.mkdir(unc_path, mode)
return cleaned_data
class MultipleForm(forms.Form):
num_of_files = forms.IntegerField(min_value=1, max_value=10)
我在上传到文件时出错,实际上不是上传:问题已经发布在 Stack 上,不知道 django admin 是否是导致该原因的问题。
所以我尝试使用 django 管理 UI 插入数据:
链接到我之前的问题:Django file not uploaded using FileField(upload to=)
所以我在 migrate 和 runserver 之后应用了 makemigration 并尝试添加到 django salesforce 模型表中。
有谁知道原因
【问题讨论】:
标签: python django file-upload filefield