python - Django Admin 不允许向表中输入数据
问题描述
所以我在我的项目中使用 django admin,在我的项目开发过程中我已经有一些列,随着时间的推移,列从 2 减少到 1,列名也发生了变化。所以我对代码进行了更改,但我无法写信给 django admin。inn django 管理 UI 或在 django 代码中。它说桌子不存在
管理员.py
from django.contrib import admin
from .models import SalesforceTicket, UploadedFiles
# Register your models here.
admin.site.register(SalesforceTicket)
admin.site.register(UploadedFiles)
视图.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})
表格.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 admin UI 插入数据:
链接到我之前的问题:Django file not upload using FileField(upload to=)
所以我在 migrate 和 runserver 之后应用了 makemigration 并尝试添加到 django salesforce 模型表中。
所以有人知道原因吗
解决方案
当您在新创建的表之后没有进行迁移时,通常会出现此错误 - 在您的情况下,表是SalesforceTicket
首先将迁移设为:python manage.py makemigrations
,然后使用以下命令应用这些迁移:python manage.py migrate
推荐阅读
- java - 在 Java 中声明一个公共类
- mysql - 在包含唯一值的列上添加索引?
- excel - 如何在 Excel 中使用选择函数获取文本和单元格值
- python-3.x - 我制作了一个程序来打印使用星号形成的“字母”。我有很多行代码。有一个更好的方法吗?
- android - Android 4 上 packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH) 处的 java.lang.verifyError
- python - 用于 for 循环的字符串 join() 方法
- reactjs - 覆盖模块中的全局 CSS 样式不起作用
- assembly - 如何使用 Irvine32 for x86 从表中写入文本文件?
- java - 如何将 ActiveProfiles 与带有 WebMvcTest 的 Spring Boot 测试一起使用?
- python - 使用子图 Matplotlib 绘制水平线