Django:ValueError:基为10的int()的文本无效:

2024-04-18 07:34:08 发布

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

我在django尝试一些东西。只是一个简单的表单,它会添加每次登录数据库的尝试。结果是ValueError:inalid literal for int(),以10为基数:我检查了很多问题,但没能克服这个错误。在

我有这样的看法。在

class LoginView(TemplateView):
    template_name = 'dashboard/login.html'
    def post(self,request):

        #firstname,email=request.POST['firstname'],request.POST['email']
        #currLogin = LoginForm(firstname,email)
        currLogin = LoginForm(request.POST)
        if currLogin.is_valid():
            firstname= currLogin.cleaned_data['firstname']
            email = currLogin.cleaned_data['email']
            print firstname,email
            users = LoginModel.objects.filter(email=email)

            if not users:
                login = LoginModel(firstname,email)
                login.save()
            else :
                return users[0].id 
        return 0

我的模型.py文件包含:

^{pr2}$

我的表单.py包含以下内容:

class LoginForm(forms.Form):
    firstname = forms.CharField(label="firstname",max_length=100)
    email = forms.CharField(label="email",max_length=100)
    class Meta:
        model = LoginModel

堆栈跟踪:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py", line 39, in inner
    response = get_response(request)
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py", line 68, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py", line 88, in dispatch
    return handler(request, *args, **kwargs)
  File "/home/akshay/Downloads/mindwave/dashboard/views.py", line 27, in post
    login.save()
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 796, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 824, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 889, in _save_table
    forced_update)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 919, in _do_update
    filtered = base_qs.filter(pk=pk_val)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 796, in filter
    return self._filter_or_exclude(False, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 814, in _filter_or_exclude
    clone.query.add_q(Q(*args, **kwargs))
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1227, in add_q
    clause, _ = self._add_q(q_object, self.used_aliases)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1253, in _add_q
    allow_joins=allow_joins, split_subq=split_subq,
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1187, in build_filter
    condition = self.build_lookup(lookups, col, value)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1083, in build_lookup
    return final_lookup(lhs, rhs)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/lookups.py", line 19, in __init__
    self.rhs = self.get_prep_lookup()
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/lookups.py", line 59, in get_prep_lookup
    return self.lhs.output_field.get_prep_value(self.rhs)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 946, in get_prep_value
    return int(value)
ValueError: invalid literal for int() with base 10: 'Ak

如果你能帮我弄清楚这一点,我们将不胜感激。在


Tags: djangoinpyselfdbbasemodelsemail
1条回答
网友
1楼 · 发布于 2024-04-18 07:34:08

这就是罪魁祸首。在

 login = LoginModel(firstname, email)

以这种方式初始化模型时,参数将按字段(字段)的定义顺序传递给字段。现在您的第一个参数是firstname,它将被分配给Django为您的模型自动定义的主键字段,它被认为是第一个参数。在

解决方案。永远不要像这样初始化模型。始终传递命名参数

^{pr2}$

相关问题 更多 >