【问题标题】:Exception Type: ValidationError at /home Exception Value: [u"'1a3288b3-7588-483f-8e85-1affa952dbbf' value must be an integer."]异常类型:/home 处的 ValidationError 异常值:[u"'1a3288b3-7588-483f-8e85-1affa952dbbf' 值必须是整数。"]
【发布时间】:2017-06-22 22:36:39
【问题描述】:

我已经为它创建了注册页面和模型,当用户注册时,他会被重定向到主页。当我点击注册用户被插入数据库但是当它重定向到主页时我收到这个错误:

追溯:

内部文件“C:\Python27\lib\site-packages\django\core\handlers\exception.py” 39. response = get_response(request)

_get_response 中的文件“C:\Python27\lib\site-packages\django\core\handlers\base.py” 187. response = self.process_exception_by_middleware(e, request)

_get_response 中的文件“C:\Python27\lib\site-packages\django\core\handlers\base.py” 185. response = Wrapped_callback(request, *callback_args, **callback_kwargs)

在主页中的文件“C:\Users\KR\Desktop\projects\project2\welcome\homeview.py” 14. if request.user.is_authenticated():

内部文件“C:\Python27\lib\site-packages\django\utils\functional.py” 234. self._setup()

_setup 中的文件“C:\Python27\lib\site-packages\django\utils\functional.py” 380. self._wrapped = self._setupfunc()

文件“C:\Python27\lib\site-packages\django\contrib\auth\middleware.py”在 24. request.user = SimpleLazyObject(lambda: get_user(request))

get_user 中的文件“C:\Python27\lib\site-packages\django\contrib\auth\middleware.py” 12. request._cached_user = auth.get_user(request)

get_user 中的文件“C:\Python27\lib\site-packages\django\contrib\auth__init__.py” 180. user_id = _get_user_session_key(请求)

_get_user_session_key 中的文件“C:\Python27\lib\site-packages\django\contrib\auth__init__.py” 59. return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY])

to_python 中的文件“C:\Python27\lib\site-packages\django\db\models\fields__init__.py” 927. params={'value': value},

异常类型:/home 处的 ValidationError 异常值:[u"'1a3288b3-7588-483f-8e85-1affa952dbbf'值必须是整数。"]

这是模型:

class user_model(AbstractBaseUser):
    user_id = models.CharField(max_length=50, primary_key=True)
    username = models.CharField(max_length=50, unique=True)
    first_name = models.CharField(max_length=50, default="None")
    last_name = models.CharField(max_length=50, default="None")
    email = models.EmailField(default="None")
    password = models.CharField(max_length=150, default="abc123")

    '''Custom user information fields. '''
    myself = models.CharField(max_length=300, default="None")
    address = models.CharField(max_length=300, default="None")
    mobilePh = models.CharField(max_length=20, default="None")
    workPh = models.CharField(max_length=20, default="None")
    workEmail = models.EmailField(default="None")
    last_login = models.CharField(max_length=50, default="None")
    profile_pic = models.ImageField(width_field=None, height_field=None,
                                    blank=True, default="None",
                                    upload_to=upload_profile_pic)
    banner_pic = models.ImageField(width_field=None, height_field=None,
                                   blank=True, default="None",
                                   upload_to=upload_banner_pic)

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['user_id']

    class Meta:
        db_table = 'user_model'
        app_label = 'welcome'

这是注册视图

def register(request):
    if request.method == 'POST':
    if validate_registration_attributes(request.POST):
        user_uuid = uuid.uuid4()
        try:
        user = User.objects.create(user_id=str(user_uuid),                                                                     last_login=str(datetime.datetime.now()),
                       username=request.POST['username'],
                       first_name=request.POST['first_name'],
                       last_name=request.POST['last_name'],
                       email=request.POST['email'],
                       profile_pic="blank_image.png",
                       banner_pic="blank_image.png",
                       password='',
                       )
        user.set_password(request.POST['passwd_1'])
        user.save()

        login(request, user)
        return HttpResponseRedirect('/home')
        except Exception as err:
        user.delete()
        print "Something happened"
        raise Exception("""EXCEPTION at register-user.objects.create in
                        userObject:%s""" % (err))
        global exceptmsg
        return HttpResponseRedirect('/welcome')
    else:
        print "New account registration form validation failed"
        context = {'RegisterResponse': exceptmsg}
        return render(request, 'welcome.html', context)

这是主页视图:

def home(request):
    if request.user.is_authenticated():
    return HttpResponseRedirect('/home')
    else:
    return HttpResponseRedirect('/welcome')

是模型问题还是其他问题。请帮忙。

【问题讨论】:

  • 您可以尝试将 user_id 保存为像 user_id=123456 这样的整数,试试吧

标签: django django-models


【解决方案1】:

我忘记覆盖 settings.py 中的默认用户模型。我将 AUTH_USER_MODEL 的值更改为 myappname.user_model。现在它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2020-08-23
    相关资源
    最近更新 更多