Django: modèle objet “n'a pas d'attribut "_meta'” dans la classe en fonction de la vue
Hi Stackoverflow personnes,
Je suis en train de travailler avec la classe de base de points de vue et pour un site de test, j'ai suivi le la documentation la configuration de la classe de base point de vue.
Pour un site de projet (sur la base du modèle ci-dessous), je veux juste créer rapidement une application CRUD pour la simple projet de modèle ci-dessous.
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
Quand je charge maintenant \project\add
, qui doit appeler le ProjectCreate
classe, j'obtiens l'erreur suivante:
objet de type "Projet" n'a pas d'attribut "_meta'
Je ne comprends pas pourquoi. Le modèle de la classe, normalement, ne nécessitent pas de méta-informations. Dans d'autres classe en fonction des projets, je n'ai pas rencontrer ce problème.
Merci pour vos suggestions!
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'
Vous devez vous connecter pour publier un commentaire.
Changement:
à:
parce que
models.Model
est de classe réelle vous devez étendre à créer des modèles sur mesure, et les gestionnaires sont en fait utilisés pour remplacer les opérations de base de données modèles sont impliqués dans les.