0
: 나는 admin.autodiscover()
을 주석 경우이 오류가 발생하지 않습니다'str을'객체가 나는 admin.autodiscover 주석을 제거 할 때 오류가 올 '_meta'에는 속성이 없습니다() 나는 장고에서이 오류에 직면하고있다
AttributeError at/
'str' object has no attribute '_meta'
Request Method: GET
Request URL: http://localhost:8000/
Django Version: 1.3
Exception Type: AttributeError
Exception Value:
'str' object has no attribute '_meta'
Exception Location: C:\Python27\lib\site-packages\django\contrib\admin\sites.py in register, line 80
Python Executable: C:\Python27\python.exe
Python Version: 2.7.2
Python Path: ['D:\\programming\\django_projects\\ecomstore',
'C:\\Python27\\lib\\site-packages\\setuptools-0.6c9-py2.7.egg',
'C:\\Python27\\lib\\site-packages\\pymysql-0.3-py2.6.egg',
'C:\\Windows\\system32\\python27.zip',
'C:\\Python27\\DLLs',
'C:\\Python27\\lib',
'C:\\Python27\\lib\\plat-win',
'C:\\Python27\\lib\\lib-tk',
'C:\\Python27',
'C:\\Python27\\lib\\site-packages',
'C:\\Python27\\lib\\site-packages\\PIL']
Server time: Fri, 13 Jan 2012 16:44:18 +0500
을, 또한 나는 ModelForm 때문에 장고에서 ModelForm을 사용했기 때문에 그렇습니까? 다음은 ModelForm 코드입니다.
from django import forms
from catalog.models import Product
class ProductAdminForm(forms.ModelForm):
class Meta:
model=Product
def clean_price(self):
if self.cleaned_data['price']<=0:
raise forms.ValidationError('Price must be greater than zero')
return self.cleaned_data['price']
따라서 어떤 사람이 문제를 이해한다면 알려주십시오.
은, 역 추적 붙여 태그 :
admin.site.register('Product', 'ProductAdmin')
당신은 클래스의 객체가 아닌 문자열을 전달해야한다 :
Environment:
Request Method: GET
Request URL: http://localhost:8000/
Django Version: 1.3
Python Version: 2.7.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'ecomstore.catalog']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
101. request.path_info)
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in resolve
250. for pattern in self.url_patterns:
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in _get_url_patterns
279. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in _get_urlconf_module
274. self._urlconf_module = import_module(self.urlconf_name)
File "C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module
35. __import__(name)
File "D:\programming\django_projects\ecomstore\..\ecomstore\urls.py" in <module>
5. admin.autodiscover()
File "C:\Python27\lib\site-packages\django\contrib\admin\__init__.py" in autodiscover
26. import_module('%s.admin' % app)
File "C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module
35. __import__(name)
File "D:\programming\django_projects\ecomstore\..\ecomstore\catalog\admin.py" in <module>
19. admin.site.register('Product', 'ProductAdmin')
File "C:\Python27\lib\site-packages\django\contrib\admin\sites.py" in register
80. if model._meta.abstract:
Exception Type: AttributeError at/
Exception Value: 'str' object has no attribute '_meta'
전체 추적은 정말 도움이 될 것입니다. 어딘가에 클래스 객체 대신 첫 번째 인수로 admin.site.register()를 호출하지만 TB가없는 곳을 말할 수는 없습니다. – AdamKG
또한 붙여 넣기 된 clean_price가 ProductAdminForm 대신 Meta 서브 클래스의 메소드이기 때문에 ProductAdminForm의 들여 쓰기가 엉망입니다.하지만 복사/붙여 넣기 문제 일 수 있으며 AttributeError가 발생하지 않을 수도 있습니다. – AdamKG
@ AdamKG : yah 그냥 복사 붙여 넣기 문제 및 stackoverflow 편집기에서 서식을, 또한 추적이 추가되었습니다 – Hafiz