【问题标题】:Django ImproperlyConfigured for import UserDjango 为导入用户配置不当
【发布时间】:2016-03-18 22:01:42
【问题描述】:

我正在尝试自定义 django 注册表单。我的 forms.py 看起来像这样:

from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class MyRegistrationForm(UserCreationForm):
    first_name=forms.CharField(max_length=120, required=True,label='First Name')
    last_name=forms.CharField(max_length=120, required=True,label='Last Name')
    email=forms.EmailField(label='Email Address')
    company_or_institution=forms.CharField(max_length=120, required=True,label='Company or Institution Name')
    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2')

    def save(self,commit = True):   
        user = super(MyRegistrationForm, self).save(commit = False)
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        user.email = self.cleaned_data['email']
        user.company_or_institution = self.cleaned_data['company_or_institution']

    if commit:
        user.save()
    return user

我的views.py是

def register_user(request):
    if request.method == 'POST':
        form = MyRegistrationForm(request.POST)
        print form.is_valid()
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/accounts/register_success')
    args = {}
    args.update(csrf(request))
    args['form'] = MyRegistrationForm()
    return render(request, 'register.html', args)

但是当我从终端(python forms.py)测试我的 forms.py 时,我收到以下错误:

Traceback (most recent call last):
File "forms.py", line 8, in <module>
from django.contrib.auth.models import User
File "/usr/local/lib/python2.7/dist-packages/django/contrib /auth/__init__.py", line 7, in <module>
from django.middleware.csrf import rotate_token
File "/usr/local/lib/python2.7/dist-packages/django/middleware/csrf.py", line 14, in <module>
from django.utils.cache import patch_vary_headers
File "/usr/local/lib/python2.7/dist-packages/django/utils/cache.py", line 26, in <module>
from django.core.cache import caches
File "/usr/local/lib/python2.7/dist-packages/django/core/cache/__init__.py", line 34, in <module>
if DEFAULT_CACHE_ALIAS not in settings.CACHES:
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 48, in __getattr__
self._setup(name)
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 42, in _setup
% (desc, ENVIRONMENT_VARIABLE))

django.core.exceptions.ImproperlyConfigured:请求设置 CACHES,但未配置设置。您必须在访问设置之前定义环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure()。

有人知道如何解决这个问题吗? 谢谢

【问题讨论】:

    标签: python django django-forms django-registration


    【解决方案1】:

    这与您的表单或您的任何代码无关。

    如果你打算使用 Django,你应该使用python manage.py shell 启动你的终端,以便它正确设置环境。

    【讨论】:

    • 感谢您的回复,但我没有得到您的答复,请您详细解释一下
    • 翻译:不要跑python forms.py。相反,运行python manage.py shell 并从该shell 导入您的表单类。使用shell 命令将设置环境(并拉入 Django 设置),以便您可以与模型、表单、视图等进行交互。
    猜你喜欢
    • 1970-01-01
    • 2015-07-12
    • 2013-10-08
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多