forms.pyの特定のモジュールにフォームフィールドをインポートする際に問題が発生しました。次のコードがあります
from django import forms
from django.forms import ModelForm
from koalified.seeker.models import *
from django.contrib.auth.models import User
class RegistrationForm(ModelForm):
username = forms.CharField(label=(u'Username'))
password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False))
ver_password = forms.CharField(label=(u' Verify Password'), widget=forms.PasswordInput(render_value=False))
email = forms.EmailField()
class Meta:
model = Seeker
exclude = ('user','verified','premium')
def clean_username(self):
''' Checking username availability '''
username = self.cleaned_data['username']
try:
User.objects.get(username=username)
except User.DoesNotExist:
if len(username) >= 5 and len(username) < 21:
return self.cleaned_data['username']
else:
raise forms.ValidationError("Username must be between 5 and 20 characters")
raise forms.ValidationError("That username is already in use")
def clean_ver_password(self):
password = self.cleaned_data.get('password')
ver_password = self.cleaned_data.get('ver_password')
if not ver_password:
raise forms.ValidationError("You must confirm your password")
if password != ver_password:
raise forms.ValidationError("Passwords do not match")
return ver_password
私はビューが存在しないというエラーを取得し続けます。これは私が調査したものであり、シェルに入ってインポートを試みることを提案しました。これがインポートの次の出力です
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/jmcguffee1/django.koalified.com/koalified/koalified/seeker/forms.py", line 6, in <module>
class RegistrationForm(ModelForm):
File "/home/jmcguffee1/django.koalified.com/koalified/koalified/seeker/forms.py", line 7, in RegistrationForm
username = forms.CharField(label=(u'Username'))
AttributeError: 'module' object has no attribute 'CharField'
私はいくつかの問題を調べて、人々がスペルの問題を抱えている可能性があることを発見しましたが、これを何度も試しましたが、ログインフォームなどの他のモジュールのフォームをロードするためにこれを取得することはできません
from django.contrib.auth.models import User
from django import forms
class LoginForm(forms.Form):
username = forms.CharField(label=(u'Username'))
password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False))
フィールドを手動でインポートしようとしましたが、機能します。
from django.forms.fields import CharField, EmailField
username = CharField()
これは問題なく動作します。シェルに戻ってdjango.formsをインポートし、そこからロードしようとしました。
fromdjangoインポートフォームusername=forms.CharField(label =(u'Username'))username
私はmodels.pyとviews.pyで周期的な呼び出しをチェックしましたが、djangoフォームの他のインポートはありません。この特定のモジュールがフォームフィールドを正しくロードしていないようです。これが十分に明確でない場合は、より多くの情報を提供できます。
これが答えの解決策でした
>>> from django import forms
>>> print 'form is : ', forms
form is : <module 'django.forms' from '/home/jmcguffee1/django.koalified.com/kf/lib/python2.6/site-packages/Django-1.4.3-py2.6.egg/django/forms/__init__.pyc'>
>>> from koalified.seeker.models import *
>>> print 'form is : ', forms
form is : <module 'django.forms.forms' from '/home/jmcguffee1/django.koalified.com/kf/lib/python2.6/site-packages/Django-1.4.3-py2.6.egg/django/forms/forms.pyc'>
>>>