django 错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 错误相关的知识,希望对你有一定的参考价值。

双击“django-admin.py”或者是用cmd,都无法运行“django-admin.py”,都会提示Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
而且,直接双击“django-admin.py”会直接闪退。我想问一下,怎么解决?(ps:我的系统是win10)

本人亲测的完美办法:

    复制路径到C:\\Users\\***\\AppData\\Local\\Programs\\Python\\Python36\\Lib\\site-packages\\Django-1.11.3-py3.6.egg\\django\\bin写到系统path里

    把路径里面的django-admin.py复制到你要创建目录下

    在地址栏输入cmd 激活命令行

    输入 python django-admin.py startproject 你要建的项目名称

参考技术A 这个无法直接运行的,后面是需要跟参数的,你的截图里有提示,比如创建一个djiango项目可以:
django-admin.py startproject hellow本回答被提问者采纳

Django模板错误?

【中文标题】Django模板错误?【英文标题】:Django template error? 【发布时间】:2011-11-08 02:40:59 【问题描述】:

我正在尝试使用 django-registration、django-registration-defaults 和 django-email-usernames 为我的 django 应用程序实现注册和登录系统。

一切都安装得很好。 django-email-usernames 提供了一个自定义登录表单,允​​许将电子邮件用作用户名。这是表单的代码。

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

...

class EmailLoginForm(forms.Form):
    email = forms.CharField(label=_(u"Email"), max_length=75, widget=forms.TextInput(attrs=dict(maxlength=75)))
    password = forms.CharField(label=_(u"Password"), widget=forms.PasswordInput)

    def clean(self):
        # Try to authenticate the user
        if self.cleaned_data.get('email') and self.cleaned_data.get('password'):
            user = authenticate(username=self.cleaned_data['email'], password=self.cleaned_data['password'])
            if user is not None:
                if user.is_active:
                    self.user = user # So the login view can access it
                else:
                    raise forms.ValidationError(_("This account is inactive."))
            else:
                raise forms.ValidationError(_("Please enter a correct username and password. Note that both fields are case-sensitive."))

        return self.cleaned_data

在 django-registration 的 urls.py 中,有登录页面的模式。它使用默认的 django.contrib.auth.views.login 视图进行登录。

所以在 urls.py 我得到了这个:

from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template
from django.contrib.auth import views as auth_views
from registration.views import activate
from registration.views import register

from email_usernames.forms import EmailLoginForm

...

url(r'^login/$', auth_views.login, 'template_name': 'registration/login.html', 'authentication_form': EmailLoginForm, name='auth_login'),

...

django.contrib.auth.views.login 接受一个模板名称和表单来使用。正如你在上面看到的那样,我正在传递那些。我正在设置模板并将 authentication_form 设置为 django-email-usernames 提供的模板。

然后当浏览到登录页面时,我收到以下错误:

/accounts/login/ 处的模板语法错误 渲染时捕获 AttributeError:“WSGIRequest”对象没有属性“get”

模板错误

在模板 /Users/Amir/.virtualenvs/scvd/lib/python2.6/site-packages/registration_defaults/templates/registration/login.html 中,第 16 行出错 渲染时捕获 AttributeError:“WSGIRequest”对象没有属性“get”

6   % endif %
7   
8   <form method="post" action="% url django.contrib.auth.views.login %">% csrf_token %
9   <table>
10  <tr>
11      <td> form.username.label_tag </td>
12      <td> form.username </td>
13  </tr>
14  <tr>
15      <td> form.password.label_tag </td>
16      <td> form.password </td>
17  </tr>
18  </table>
19  <p><a href="% url auth_password_reset %">Forgot</a> your password?  <a href="% url registration_register %">Need an account</a>?</p>
20  
21  <input type="submit" value="login" />
22  <input type="hidden" name="next" value=" next " />
23  </form>
24  
25  % endblock %
26  

我很困惑。我很确定我正确地进行了 urls.py 配置。我不明白模板中第 16 行 ( form.password ) 发生的错误。

请让我知道我还能提供什么来澄清我的问题。非常感谢您提前提供的帮助。

【问题讨论】:

【参考方案1】:

看来你的 clean() 不是很清楚

 user = authenticate(username=self.cleaned_data['email'], password=self.cleaned_data['password'])

有 .get 不见了

 user = authenticate(username=self.cleaned_data.get['email'], password=self.cleaned_data.get['password'])

使用是个好习惯

 def clean(self):
     x = self.cleaned_data.get("username")
     y = self.cleaned_data.get("password")

那么你可以使用

 user = authenticate(username=x, password=y)

【讨论】:

以上是关于django 错误的主要内容,如果未能解决你的问题,请参考以下文章

Django 和 AngularJS:如何显示来自 Django 调试错误消息的 Angular $http 错误

Django模板错误?

django debug关闭之后网页错误

Django 错误:关系 django_admin_log 的权限被拒绝

Django“未配置设置”错误,无法定义环境变量 DJANGO_SETTINGS_MODULE

Django 导入错误 - 没有名为 django.conf.urls.defaults 的模块