/signup“user_password”处的Django TypeError是此函数的无效关键字参数

2024-06-16 14:40:52 发布

您现在位置:Python中文网/ 问答频道 /正文

每当我试图创建一个新用户时都会遇到这个错误。在

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

Tags: djangonamefrommodelsrequestfoldercontribpost