【问题标题】:django error in my code ,what does i do我的代码中出现 django 错误,我该怎么办
【发布时间】:2010-01-25 03:09:16
【问题描述】:
from django.core.management import setup_environ
from register2 import settings
setup_environ(settings)


from django import forms
from django.contrib.auth.forms import AuthenticationForm
from django.utils.translation import ugettext_lazy as _


class AuthenticationRememberMeForm ( AuthenticationForm ):

            """
            Subclass of Django ``AuthenticationForm`` which adds a remember me checkbox.

            """

            remember_me = forms.BooleanField (
                label = _( 'Remember Me' ),
                initial = False,
                required = False,
                )

print AuthenticationRememberMeForm.remember_me


Traceback (most recent call last):
  File "D:\zjm_code\register2\b.py", line 26, in <module>
    print AuthenticationRememberMeForm['remember_me']
TypeError: 'DeclarativeFieldsMetaclass' object is unsubscriptable

【问题讨论】:

    标签: python django


    【解决方案1】:

    django forms 模块使用元类来促进表单字段的声明性语法。因此,您应该将remember_me 视为表单instance字段,而不是类属性。所以访问该字段是有意义的:

    form = AuthenticationRememberMeForm()
    field_obj = form.fields['remember_me']
    

    或者,类似地,值:

    form = AuthenticationRememberMeForm(data)
    if form.is_valid():
        remember_me_value = form.cleaned_data['remember_me']
    

    显然,django.forms 在幕后做了一些工作来实现这一点。如果您想了解如何操作,请查看relevant code。如果您只是想让您的表单正常工作,请尝试关注usage outlined in the docs

    【讨论】:

      猜你喜欢
      • 2022-11-13
      • 2012-04-14
      • 2018-03-20
      • 2012-06-06
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 2017-12-28
      相关资源
      最近更新 更多