6

안녕 유래 사람들,장고 : 모델 객체 클래스를 기반으로보기에 나는 클래스 기반의 전망 및 테스트 사이트에 있어요

을 "더 속성 '_meta을'이 없다", 나는 설치에 클래스 기반의 뷰를 documentation을 따라 . (아래 프로젝트 모델을 기반으로하는) 프로젝트 사이트의 경우 아래의 간단한 프로젝트 모델에 대한 빠른 CRUD 응용 프로그램을 만들고 싶습니다.

models.py

class Project(models.Manager): 
    name = models.CharField(_('Name of the Project'), max_length = 100,) 
    slug = models.SlugField(max_length=100,) 
    ... 

views.py

from django.views.generic.edit import CreateView, UpdateView, DeleteView 
from django.core.urlresolvers import reverse_lazy 
from project.models import Project 

class ProjectCreate(CreateView): 
    model = Project 

class ProjectUpdate(UpdateView): 
    model = Project 

내가 지금 ProjectCreate 클래스를 호출해야 \project\add을로드, 나는 다음과 같은 오류 얻을 : 유형을 개체 '프로젝트'에 '_ 메타'속성이 없습니다.

이유를 모르겠습니다. 모델 클래스는 일반적으로 메타 정보를 필요로하지 않습니다. 다른 클래스 기반 프로젝트에서는이 문제가 발생하지 않았습니다.

의견을 보내 주셔서 감사합니다.

역 추적

Django Version: 1.4.1 
Python Version: 2.7.1 

Traceback: 
File "/Users/neurix/Development/vir_project_2.0/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/Users/neurix/Development/vir_project_2.0/lib/python2.7/site-packages/django/views/generic/base.py" in view 
    48.    return self.dispatch(request, *args, **kwargs) 
File "/Users/neurix/Development/vir_project_2.0/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch 
    69.   return handler(request, *args, **kwargs) 
File "/Users/neurix/Development/vir_project_2.0/lib/python2.7/site-packages/django/views/generic/edit.py" in get 
    168.   return super(BaseCreateView, self).get(request, *args, **kwargs) 
File "/Users/neurix/Development/vir_project_2.0/lib/python2.7/site-packages/django/views/generic/edit.py" in get 
    130.   form_class = self.get_form_class() 
File "/Users/neurix/Development/vir_project_2.0/lib/python2.7/site-packages/django/views/generic/edit.py" in get_form_class 
    89.    return model_forms.modelform_factory(model) 
File "/Users/neurix/Development/vir_project_2.0/lib/python2.7/site-packages/django/forms/models.py" in modelform_factory 
    407.  return form_metaclass(class_name, (form,), form_class_attrs) 
File "/Users/neurix/Development/vir_project_2.0/lib/python2.7/site-packages/django/forms/models.py" in __new__ 
    206.          opts.exclude, opts.widgets, formfield_callback) 
File "/Users/neurix/Development/vir_project_2.0/lib/python2.7/site-packages/django/forms/models.py" in fields_for_model 
    146.  opts = model._meta 

Exception Type: AttributeError at /project/add/ 
Exception Value: type object 'Project' has no attribute '_meta' 

답변

9

변경 :

class Project(models.Manager) 

에 : 실제 클래스가

class Project(models.Model) 

models.Model 때문에 사용자 정의 모델을 만들 확장해야하고, 관리자가 실제로 사용된다 데이터베이스 운영 체제를 재정의하는 방법 모델이 포함되어 있습니다.

+0

누락 된 것이 있습니까? 제안한 것과 동일하므로 애트리뷰트 오류가 제거되지 않습니다. – tilaprimera

+0

'models.Model'의 어떤 모듈을 가져와야합니까? 많은 옵션이 있지만 내 맞춤 모델이 그 중 하나에 적합하지 않은 것 같습니다. – KasparTr