Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django.core.exceptions.FieldError:未知字段_Python_Django - Fatal编程技术网

Python django.core.exceptions.FieldError:未知字段

Python django.core.exceptions.FieldError:未知字段,python,django,Python,Django,我越来越 django.core.exceptions.FieldError: Unknown field(s) (authorized_users_read_or_write, authorized_users_to_write, authorized_users_to_read) specified for FileUpload 更改模型中3个字段的名称后运行makemigrations。我希望Django接受名称更改,并根据更改进行迁移。模型是: # -*- coding: utf-8

我越来越

django.core.exceptions.FieldError: Unknown field(s) (authorized_users_read_or_write, authorized_users_to_write, authorized_users_to_read) specified for FileUpload
更改模型中3个字段的名称后运行
makemigrations
。我希望Django接受名称更改,并根据更改进行迁移。模型是:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models
from django.contrib.auth.models import User

class FileUpload(models.Model):
    name = models.CharField(max_length=255, default='')
    file = models.FileField(upload_to='uploads/%Y/%m/%d/')
    upload_time = models.DateTimeField(auto_now_add=True, blank=True)
    owner = models.ForeignKey(User, on_delete=models.CASCADE, null=True, related_name='files_owned')
    description = models.TextField(null=True, blank=True)
    users_authorized_to_read = models.ManyToManyField(User, related_name='file_read_permissions', null=True, blank=True)
    users_authorized_to_write = models.ManyToManyField(User, related_name='file_write_permissions', null=True, blank=True)
    users_authorized_to_read_or_write = models.ManyToManyField(User, related_name='file_read_write_permissions', null=True, blank=True)

    def __str__(self):
        return self.name
我更改了底部的3个字段,仅此而已

$ python3 manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 316, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 350, in execute
    self.check()
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 379, in check
    include_deployment_checks=include_deployment_checks,
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 366, in _run_checks
    return checks.run_checks(**kwargs)
  File "/usr/local/lib/python3.5/dist-packages/django/core/checks/registry.py", line 71, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/usr/local/lib/python3.5/dist-packages/django/core/checks/urls.py", line 40, in check_url_namespaces_unique
    all_namespaces = _load_all_namespaces(resolver)
  File "/usr/local/lib/python3.5/dist-packages/django/core/checks/urls.py", line 57, in _load_all_namespaces
    url_patterns = getattr(resolver, 'url_patterns', [])
  File "/usr/local/lib/python3.5/dist-packages/django/utils/functional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.5/dist-packages/django/urls/resolvers.py", line 533, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/usr/local/lib/python3.5/dist-packages/django/utils/functional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.5/dist-packages/django/urls/resolvers.py", line 526, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/home/cchilders/projects/secure_code_warrior_django_project/secure_code_warrior_django_project/urls.py", line 24, in <module>
    url(r'file-manager/', include('file_management.urls')),
  File "/usr/local/lib/python3.5/dist-packages/django/urls/conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/home/cchilders/projects/secure_code_warrior_django_project/file_management/urls.py", line 3, in <module>
    from . import views
  File "/home/cchilders/projects/secure_code_warrior_django_project/file_management/views.py", line 9, in <module>
    from .forms import FileUploadForm
  File "/home/cchilders/projects/secure_code_warrior_django_project/file_management/forms.py", line 26, in <module>
    class FileUploadForm(ModelForm):
  File "/usr/local/lib/python3.5/dist-packages/django/forms/models.py", line 266, in __new__
    raise FieldError(message)
django.core.exceptions.FieldError: Unknown field(s) (authorized_users_read_or_write, authorized_users_to_write, authorized_users_to_read) specified for FileUpload
$python3 manage.py makemigrations
回溯(最近一次呼叫最后一次):
文件“manage.py”,第22行,在
从命令行(sys.argv)执行命令
文件“/usr/local/lib/python3.5/dist-packages/django/core/management/__-init___;.py”,第381行,从命令行执行
utility.execute()
文件“/usr/local/lib/python3.5/dist-packages/django/core/management/__-init__.py”,执行中第375行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/usr/local/lib/python3.5/dist-packages/django/core/management/base.py”,第316行,在运行时从
self.execute(*args,**cmd_选项)
文件“/usr/local/lib/python3.5/dist-packages/django/core/management/base.py”,第350行,在execute中
self.check()
文件“/usr/local/lib/python3.5/dist-packages/django/core/management/base.py”,第379行,选中
包括部署检查=包括部署检查,
文件“/usr/local/lib/python3.5/dist-packages/django/core/management/base.py”,第366行,运行检查
返回检查。运行检查(**kwargs)
文件“/usr/local/lib/python3.5/dist packages/django/core/checks/registry.py”,第71行,运行检查
新建错误=检查(应用程序配置=应用程序配置)
文件“/usr/local/lib/python3.5/dist packages/django/core/checks/url.py”,第40行,在check\u url\u namespaces\u unique中
所有\u名称空间=\u加载\u所有\u名称空间(解析器)
文件“/usr/local/lib/python3.5/dist-packages/django/core/checks/url.py”,第57行,位于“加载所有名称空间”
url\u patterns=getattr(解析器,'url\u patterns',[])
文件“/usr/local/lib/python3.5/dist-packages/django/utils/functional.py”,第37行,在__
res=instance.\uuuu dict\uuuu[self.name]=self.func(实例)
文件“/usr/local/lib/python3.5/dist packages/django/url/resolvers.py”,第533行,url_模式
patterns=getattr(self.urlconf_模块,“urlpatterns”,self.urlconf_模块)
文件“/usr/local/lib/python3.5/dist-packages/django/utils/functional.py”,第37行,在__
res=instance.\uuuu dict\uuuu[self.name]=self.func(实例)
urlconf_模块中的文件“/usr/local/lib/python3.5/dist packages/django/url/resolvers.py”,第526行
返回导入_模块(self.urlconf_名称)
文件“/usr/lib/python3.5/importlib/_init__.py”,第126行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第986行,在_gcd_import中
文件“”,第969行,在“查找”和“加载”中
文件“”,第958行,在“查找”和“加载”中解锁
文件“”,第673行,在“加载”中
exec_模块中第665行的文件“”
文件“”,第222行,在已删除帧的调用中
文件“/home/cchilders/projects/secure\u code\u warrior\u django\u project/secure\u code\u warrior\u django\u project/url.py”,第24行,在
url(r'file-manager/',包括('file_management.url'),
文件“/usr/local/lib/python3.5/dist-packages/django/url/conf.py”,第34行,include中
urlconf_模块=导入_模块(urlconf_模块)
文件“/usr/lib/python3.5/importlib/_init__.py”,第126行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第986行,在_gcd_import中
文件“”,第969行,在“查找”和“加载”中
文件“”,第958行,在“查找”和“加载”中解锁
文件“”,第673行,在“加载”中
exec_模块中第665行的文件“”
文件“”,第222行,在已删除帧的调用中
文件“/home/cchilders/projects/secure\u code\u warrior\u django\u project/File\u management/url.py”,第3行,在
从…起导入视图
文件“/home/cchilders/projects/secure\u code\u warrior\u django\u project/File\u management/views.py”,第9行,在
从.forms导入文件上传表单
文件“/home/cchilders/projects/secure\u code\u warrior\u django\u project/File\u management/forms.py”,第26行,在
类FileUploadForm(ModelForm):
文件“/usr/local/lib/python3.5/dist-packages/django/forms/models.py”,第266行,新__
raise FIELD错误(消息)
django.core.exceptions.FieldError:为文件上载指定的未知字段(授权用户读取或写入、授权用户写入、授权用户读取)

可能导致此错误的一个问题是将旧字段名放在模型表单中,我这样做了

请显示完整的回溯;在某些地方,这些字段使用的是旧名称。但实际上这不是一个好办法;相反,有一个m2m用于“授权用户”,有一个用于读写权限的直通表。是的,你说得对,我在表单中有旧名称。我没想到表单会影响迁移。谢谢