所以我试图为我的大学项目构建一个实时聊天应用程序,我使用了 django,因为我听说它非常灵活,可以用作 webframewoke 应用程序,但自从我开始以来,我一直面临错误,我对大多数错误都有解决方案,但我得到了陷入这个错误,所以我需要帮助 #forms.py
from django.contrib.auth.forms import UserChangeForm
from django.contrib.auth.models import User
from django.db import models
from django import forms
class SignupForm(UserChangeForm):
class Meta:
model = User
fields = ['username', 'password1', 'password2']
#urls.py
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views
urlpatterns = [
path('members/', views.members, name='members'),
path('', views.frontpage, name='frontpage'),
path('signup/', views.signup, name='signup'),
path('login/', auth_views.LoginView.as_view(template_name='members\login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]
#views.py
from django.contrib.auth import login
from django.shortcuts import render, redirect
from .forms import SignUpForm
def frontpage(request):
return render(request, 'members\frontpage.html')
def signup(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
user = form.save()
login(request)
return redirect('frontpage')
else:
form = SignUpForm()
return render(request, 'members/signup.html', {'form': form})
#models.py
from django.db import models
from django.contrib.auth.models import User
class User(models.Model):
username = models.CharField(max_length=255, blank= True, editable=True)
password1 = models.CharField(max_length=30, null=True, blank=True, editable= True)
password2 = models.CharField(max_length=30, null=True, blank=True, editable= True)
#错误信息
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\Lib\threading.py", line 1073, in _bootstrap_inner
self.run()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\Lib\threading.py", line 1010, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\core\management\commands\runserver.py", line 133, in inner_run
self.check(display_num_errors=True)
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\core\management\base.py", line 486, in check
all_issues = checks.run_checks(
^^^^^^^^^^^^^^^^^^
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\core\checks\registry.py", line 88, in run_checks
new_errors = check(app_configs=app_configs, databases=databases)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\core\checks\urls.py", line 14, in check_url_config
return check_resolver(resolver)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\core\checks\urls.py", line 24, in check_resolver
return check_method()
^^^^^^^^^^^^^^
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\urls\resolvers.py", line 519, in check
for pattern in self.url_patterns:
^^^^^^^^^^^^^^^^^
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\utils\functional.py", line 47, in __get__
res = instance.__dict__[self.name] = self.func(instance)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\urls\resolvers.py", line 738, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\utils\functional.py", line 47, in __get__
res = instance.__dict__[self.name] = self.func(instance)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\urls\resolvers.py", line 731, in urlconf_module
return import_module(self.urlconf_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\Lib\importlib\__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "C:\Users\bdjam\OneDrive\Bureau\project\chat\chat\urls.py", line 21, in <module>
path('', include('members.urls')),
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\urls\conf.py", line 39, in include
urlconf_module = import_module(urlconf_module)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\Lib\importlib\__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "C:\Users\bdjam\OneDrive\Bureau\project\chat\members\urls.py", line 3, in <module>
from . import views
File "C:\Users\bdjam\OneDrive\Bureau\project\chat\members\views.py", line 5, in <module>
from .forms import SignUpForm
File "C:\Users\bdjam\OneDrive\Bureau\project\chat\members\forms.py", line 6, in <module>
class SignupForm(UserChangeForm):
File "C:\Users\bdjam\OneDrive\Bureau\project\chatapp\Lib\site-packages\django\forms\models.py", line 332, in __new__
raise FieldError(message)
django.core.exceptions.FieldError: Unknown field(s) (password1, password2) specified for User
gJHVJ
在您的
forms.py
中,您正在导入django的内置User
模型,这就是它给出错误的原因:Unknown field(s) (password1, password2) specified for User
解决方案: 从
User
中的 models.py
导入 forms.py
模型:
from .models import User
# then class definition:
class SignupForm(UserChangeForm):