每当我试图创建一个新用户时都会遇到这个错误。在
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/signup
Django Version: 1.7
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'securewitness')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\****\Documents\GitHub\****\app\securewitness\views.py" in signup
35. user_password = request.POST["user_password"])
File "C:\Python27\lib\site-packages\django\db\models\base.py" in __init__
453. raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
Exception Type: TypeError at /signup
Exception Value: 'user_password' is an invalid keyword argument for this function
这是我的注册.html页码
^{pr2}$在视图.py在
from django.shortcuts import render
from django.contrib.auth.models import User
from securewitness.models import Bulletin
from securewitness.models import Folder
from django.utils import timezone
from django.db.models import Q
....
def signup(request):
if request.method == 'POST':
newUser = User(user_name = request.POST["user_name"],
user_password = request.POST["user_password"])
newUser.save()
return render(request, 'securewitness/signup.html')
...
def createbulletin(request):
if request.method == 'POST':
newBulletin = Bulletin(bulletin_name=request.POST["bulletin_name"],
bulletin_description=request.POST["bulletin_description"],
bulletin_location=request.POST["bulletin_location"],
bulletin_date=timezone.now(),
bulletin_author=request.POST["bulletin_author"],
folder=Folder.objects.get(id=request.POST["bulletin_folder"]))
newBulletin.save()
b = Bulletin.objects.all()
folders = Folder.objects.all()
return render(request, 'securewitness/createbulletin.html', {'bulletin_list': b, 'folders': folders})
def createfolder(request):
if request.method == 'POST':
newfolder = Folder(folder_name=request.POST["name"],
folder_description=request.POST["description"],
author=request.POST["author"])
newfolder.save()
return render(request, 'securewitness/createfolder.html', {'message': 'Successfully created folder'})
else:
return render(request, 'securewitness/createfolder.html', {})
....
我合并createfolder和createbulletin的唯一原因是,当我尝试创建一个新的文件夹或bulletin时,这两个功能确实起作用。在
这是我的模型.py在
from django.db import models
# Create your models here.
class User(models.Model):
user_name = models.CharField(max_length=100)
user_password = models.CharField(max_length=100)
def __unicode__(self):
return self.user_name
class Folder(models.Model):
folder_name = models.CharField(max_length=100)
folder_description = models.CharField(max_length=500)
author = models.CharField(max_length=100)
def __unicode__(self):
return self.folder_name
class Bulletin(models.Model):
bulletin_name = models.CharField(max_length=20)
bulletin_description = models.CharField(max_length=128)
bulletin_location = models.CharField(max_length=128)
bulletin_date = models.DateTimeField(auto_now_add=True)
bulletin_author = models.CharField(max_length=128)
folder = models.ForeignKey(Folder, verbose_name="containing folder", null=True, on_delete=models.SET_DEFAULT, default=None)
def __unicode__(self):
return self.bulletin_name
您没有使用您的
User
模型,而是使用Django的:Django的
User
没有user_name
或user_password
字段。在相关问题 更多 >
编程相关推荐