Django - User.DoesNotExist不存在?

sha*_*nyu 32 python authentication django pydev django-models

我想抓住Django.我在Eclipse上使用Pydev.我写了一个简单的注册页面,我无法工作.Eclipse抱怨User.DoesNotExist未定义.最有可能的是,我遗漏了一些微不足道的东西.这是代码的相关部分:

from django.contrib.auth.models import User
...
class SignUpForm (forms.Form):
    ...
    def clean_username (self): 
        try:
            User.objects.get(username=self.cleaned_data['username'])
        except User.DoesNotExist:
            return self.cleaned_data['username']
        raise forms.ValidationError(USERNAME_ALREADY_IN_USE)
    ...
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 23

问题实际上是PyDev,而不是你的代码.你所做的是绝对正确的,但IDE总是难以用像Python这样的动态语言来解析属性.在DoesNotExist异常的情况下,它是通过__metaclass__而不是通过正常的对象继承添加的,因此PyDev不太可能找到它.但是,它应该肯定有效.

  • 建议:使用PyCharm (3认同)
  • 建议:不要将IDE与动态语言一起使用. (2认同)

Smi*_*ris 20

我刚刚发现Pydev实际上有一个很好的解决方法.

转到Window > Preferences,然后转到Pydev > Editor > Code Analysis.

单击Undefined选项卡,将"DoesNotExist"添加到标题为将以下名称视为全局变量的文本框中.


mde*_*erk 7

Pydev有针对此类情况的解决方法(在运行时定义成员时).只需在字符串末尾添加#@ UndefinedVariable导致警告(当光标位于"DoesNotExist"时键盘上的ctrl + 1),它就不会抱怨.