1

このコードの何が問題なのかを理解するのを手伝ってくれることを願っています:

from django.forms import ModelForm
from models import Persona

class PersonaForm(ModelForm):

    class Meta:
        model = Persona
        exclude = ('cuenta',)

    def __init__(self, *args, **kwargs):
        cuenta = kwargs.pop('cuenta')
        super(PersonaForm, self).__init__(*args, **kwargs)
        self.fields['organizacion'].queryset = Organizacion.objects.filter(cuenta=cuenta)

次のエラーが表示されます。name 'PersonaForm' is not defined

これは全体のトレースバックです:

Traceback:
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  103.                     resolver_match = resolver.resolve(request.path_info)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
  319.             for pattern in self.url_patterns:
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
  347.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
  342.             self._urlconf_module = import_module(self.urlconf_name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "/Applications/djangostack-1.4.5-0/apps/django/django_projects/tomate/tomate/urls.py" in <module>
  18.     url(r'^dashboard/', include('dashboard.urls')),
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/conf/urls/__init__.py" in include
  25.         urlconf_module = import_module(urlconf_module)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "/Applications/djangostack-1.4.5-0/apps/django/django_projects/tomate/dashboard/urls.py" in <module>
  3. from dashboard import views
File "/Applications/djangostack-1.4.5-0/apps/django/django_projects/tomate/dashboard/views.py" in <module>
  7. from forms import PersonaForm
File "/Applications/djangostack-1.4.5-0/apps/django/django_projects/tomate/dashboard/forms.py" in <module>
  4. class PersonaForm(ModelForm):
File "/Applications/djangostack-1.4.5-0/apps/django/django_projects/tomate/dashboard/forms.py" in PersonaForm
  12.         super(PersonaForm, self).__init__(*args, **kwargs)

Exception Type: NameError at /
Exception Value: name 'PersonaForm' is not defined

私は答えを探しましたが、まだ何も見つかりませんでした...ありがとう!

4

1 に答える 1

1

そこにインデントエラーがあることを確認してください。トレースバックを見ると、forms.py がインポートされているときに の行が実行されています。これは、メソッドsuper内にある場合は通常発生しないはずです。__init__したがって、メソッド定義と同じレベルにその行があり、フォームクラスが定義されているときに実行されていると思います。たとえば、タブとスペースがどこにも混在していないことを確認してください。

于 2013-11-10T14:32:30.297 に答える