6

Merhaba Stackoverflow insanları,Django: Model nesne sınıfı temelli görünümde Sınıf temelli manzarası ve bir test sitesi için çalışıyorum

"hayır özelliği 'ni _meta' vardır" Ben kurulum için sınıf temelli görünümleri documentation izledi . Bir proje sitesi için (aşağıdaki proje modeline göre), sadece aşağıdaki basit proje modeli için hızlı bir CRUD uygulaması oluşturmak istiyorum.

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 

şimdi ProjectCreate sınıf çağırmalıdır \project\add, yük, aşağıdaki hatayı alıyorum: tipi 'Project' nesnesinin '_meta'

özniteliği yoktur

Nedenini anlamıyorum. Model sınıfı normalde meta bilgisi gerektirmez. Diğer sınıf tabanlı projelerde bu problemle karşılaşmadım.

Önerileriniz için teşekkür ederiz!

traceback

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' 

cevap

9

Değişimi:

class Project(models.Manager) 

için: gerçek sınıftır

class Project(models.Model) 

models.Model çünkü özel modeller oluşturmak üzere uzatmak gerekir ve yöneticiler aslında kullanılmaktadır veritabanı oper geçersiz kılmak için ation modelleri .

+0

İçinde eksik başka bir şey var mı? Önerdiğim gibi aynısını yaptığından, özellik hatası kaldırmaz. – tilaprimera

+0

'models.Model' modülünün hangi modülü içe aktarılmalı? Birçok seçenek var ama benim özel modelim bunlardan hiçbirine sığmıyor gibi görünüyor. – KasparTr