Python thred django主线程中出现异常: 从模型创建表单

Python thred django主线程中出现异常: 从模型创建表单,python,django,Python,Django,我是django新手,尝试建立模型,但不幸的是,我出现了一些奇怪的错误,甚至我也检查了两次代码,我检查了django文档,但没有发现我的问题 我访问了这个django文档,但还没有弄明白!!!相当混乱 AppFive/forms.py from django import forms from AppFive.models import User from django.forms import ModelForm class NewUserForm(ModelForm): clas

我是django新手,尝试建立模型,但不幸的是,我出现了一些奇怪的错误,甚至我也检查了两次代码,我检查了django文档,但没有发现我的问题

我访问了这个django文档,但还没有弄明白!!!相当混乱

AppFive/forms.py

from django import forms
from AppFive.models import User
from django.forms import ModelForm

class NewUserForm(ModelForm):
    class Meta:
        model = User
        fields = '__all__ ' # <-- Mistake over here - This Line. SOLVED!
AppFive/views.py

from django.shortcuts import render
# from django.http import HttpResponse
# from AppFive.models import User
# Create your views hereself.
from AppFive.forms import NewUserForm

def index(request):
    return render(request,'AppFive/index.html')

def users(request):
    form = NewUserForm()
    if request.method == "POST":
        form = NewUserForm(request.POST)

        if form.is_valid():
            form.save(commit=True)
            return index(request)
        else:
            print('ERROR : F O R M    I N V A L I D')
    return render(request,'AppFive/users.html',{'form':form})
回溯(最近一次呼叫最后一次):
文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\threading.py”,第926行,在\u bootstrap\u内部
self.run()
文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\threading.py”,第870行,正在运行
自我目标(*自我参数,**自我参数)
文件“C:\Users\Khan\Miniconda3\envs\mydjangenv\lib\site packages\django\utils\autoreload.py”,第54行,在包装器中
fn(*args,**kwargs)
文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site packages\django\core\management\commands\runserver.py”,第117行,在内部运行
self.check(display\u num\u errors=True)
检查文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site packages\django\core\management\base.py”,第390行
包括部署检查=包括部署检查,
文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site packages\django\core\management\base.py”,第377行,在运行检查中
返回检查。运行检查(**kwargs)
运行检查中的文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site packages\django\core\checks\registry.py”,第72行
新建错误=检查(应用程序配置=应用程序配置)
文件“C:\Users\Khan\Miniconda3\envs\mydjangenv\lib\site packages\django\core\checks\url.py”,第40行,在check\u url\u namespaces\u unique中
所有\u名称空间=\u加载\u所有\u名称空间(解析器)
文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site packages\django\core\checks\url.py”,第57行,位于加载所有名称空间中
url\u patterns=getattr(解析器,'url\u patterns',[])
文件“C:\Users\Khan\Miniconda3\envs\mydjangenv\lib\site packages\django\utils\functional.py”,第80行,在__
res=instance.\uuuu dict\uuuu[self.name]=self.func(实例)
文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site packages\django\url\resolvers.py”,第579行,url_模式
patterns=getattr(self.urlconf_模块,“urlpatterns”,self.urlconf_模块)
文件“C:\Users\Khan\Miniconda3\envs\mydjangenv\lib\site packages\django\utils\functional.py”,第80行,在__
res=instance.\uuuu dict\uuuu[self.name]=self.func(实例)
urlconf_模块中的文件“C:\Users\Khan\Miniconda3\envs\mydjangenv\lib\site packages\django\url\resolvers.py”,第572行
返回导入_模块(self.urlconf_名称)
导入模块中的文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\importlib\\uuuuuu init\uuuuuu.py”,第127行
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第1006行,在\u gcd\u导入中
文件“”,第983行,在_find_和_load中
文件“”,第967行,在“查找”和“加载”中解锁
文件“”,第677行,在\u加载\u解锁
exec_模块中第728行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“C:\Users\Khan\Desktop\Python Bootcamp\PB2\ProFive\ProFive\url.py”,第18行,在
从五个导入视图
文件“C:\Users\Khan\Desktop\Python Bootcamp\PB2\ProFive\AppFive\views.py”,第5行,在
从AppFive.forms导入NewUserForm
文件“C:\Users\Khan\Desktop\Python Bootcamp\PB2\ProFive\AppFive\forms.py”,第5行,在
类NewUserForm(ModelForm):
文件“C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site packages\django\forms\models.py”,第235行,在新的__
raise TypeError(msg)
TypeError:NewUserForm.Meta.fields不能是字符串。你的意思是打字吗?
python 3.7.4


django(2,2,3,'final',0)

正如caot所提到的,您需要提供正确答案的代码。不管怎样,让我猜一猜

当您试图从模型中生成表单时,需要指定模型以及其中的字段(您对显示/捕获感兴趣)

应为字段分配一个列表,该列表(严格地)由字段名组成,每个字段名作为字符串。如果要包括所有字段,可以将“all”指定为字符串(是,字符串;不是列表)

我猜,要么您在指定all时出错,要么您将字段作为字符串包含(字段='pub\u date'或字段='pub\u date,headline'))

如果我的回答不能解决您的问题,请显示完整的代码

干杯


它在字符串中有一个额外的空格。把它拿走

发布您的代码,否则将无法提供帮助。
类Meta中的
字段
必须是字段名列表或“全部”。它不是任何其他字符串。现在我发布代码(对不起,我忘了发布代码)
from django.shortcuts import render
# from django.http import HttpResponse
# from AppFive.models import User
# Create your views hereself.
from AppFive.forms import NewUserForm

def index(request):
    return render(request,'AppFive/index.html')

def users(request):
    form = NewUserForm()
    if request.method == "POST":
        form = NewUserForm(request.POST)

        if form.is_valid():
            form.save(commit=True)
            return index(request)
        else:
            print('ERROR : F O R M    I N V A L I D')
    return render(request,'AppFive/users.html',{'form':form})
Traceback (most recent call last):
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\utils\autoreload.py", line 54, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\commands\runserver.py", line 117, in inner_run
    self.check(display_num_errors=True)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\base.py", line 390, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\base.py", line 377, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\core\checks\urls.py", line 40, in check_url_namespaces_unique
    all_namespaces = _load_all_namespaces(resolver)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\core\checks\urls.py", line 57, in _load_all_namespaces
    url_patterns = getattr(resolver, 'url_patterns', [])
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\utils\functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\urls\resolvers.py", line 579, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\utils\functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\urls\resolvers.py", line 572, in urlconf_module
    return import_module(self.urlconf_name)
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\Khan\Desktop\Python Bootcamp\PB2\ProFive\ProFive\urls.py", line 18, in <module>
    from AppFive import views
  File "C:\Users\Khan\Desktop\Python Bootcamp\PB2\ProFive\AppFive\views.py", line 5, in <module>
    from AppFive.forms import NewUserForm
  File "C:\Users\Khan\Desktop\Python Bootcamp\PB2\ProFive\AppFive\forms.py", line 5, in <module>
    class NewUserForm(ModelForm):
  File "C:\Users\Khan\Miniconda3\envs\MyDjangoEnv\lib\site-packages\django\forms\models.py", line 235, in __new__
    raise TypeError(msg)
TypeError: NewUserForm.Meta.fields cannot be a string. Did you mean to type: ('__all__ ',)?
fields = '__all__ '