0

我使用django-neomodel集成创建了一个简单的 Django Webapp 。尝试在“ http://localhost:8000/book/new ”创建新书并提交后,我看到了回溯中显示的错误。

我在网上搜索过,在大多数情况下,错误似乎是因为在指定模型名称时出现了一些拼写错误,或者无意中使用了字符串。由于这些原因,我已经仔细检查过,但在我的代码中看不到任何此类问题。

另外,我尝试使用 Forms,通过创建一个表单并在视图中给出一个指定的表单,而不是模型本身。但在这种情况下我也看到了同样的错误。

模型.py:

TITLE_MAX_LEN = 100
USERNAME_MAX_LEN = 25
NAME_MAX_LEN = 25

class Book(DjangoNode):
    custom_pk = UniqueIdProperty()
    title = StringProperty(max_length=TITLE_MAX_LEN, unique_index=True, required=True)
    description = StringProperty() 
    difficulty = IntegerProperty()
    importance = FloatProperty()

    class Meta:
        app_label = 'knowledge'

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('book-detail', kwargs={'pk': self.custom_pk})

视图.py

class BookCreateView(CreateView):
    model = Book
    fields = ['title', 'description']
    template_name = "knowledge/book_form.html"


class BookDetailView(DetailView):
    model = Book
    template_name = "knowledge/book_detail.html"

网址.py

urlpatterns = [
    path('book/new/', BookCreateView.as_view(), name='book-create'),
    path('book/<str:pk>/', BookDetailView.as_view(), name='book-detail'),
]

追溯:

Traceback:

File "/Users/sam/code/website/django_env/lib/python3.7/site-packages/django/core/handlers/exception.py" in inner
  34.             response = get_response(request)

File "/Users/sam/code/website/django_env/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "/Users/sam/code/website/django_env/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Users/sam/code/website/django_env/lib/python3.7/site-packages/django/views/generic/base.py" in view
  71.             return self.dispatch(request, *args, **kwargs)

File "/Users/sam/code/website/django_env/lib/python3.7/site-packages/django/views/generic/base.py" in dispatch
  97.         return handler(request, *args, **kwargs)

File "/Users/sam/code/website/django_env/lib/python3.7/site-packages/django/views/generic/detail.py" in get
  106.         self.object = self.get_object()

File "/Users/sam/code/website/django_env/lib/python3.7/site-packages/django/views/generic/detail.py" in get_object
  30.             queryset = self.get_queryset()

File "/Users/sam/code/website/django_env/lib/python3.7/site-packages/django/views/generic/detail.py" in get_queryset
  67.                 return self.model._default_manager.all()

Exception Type: AttributeError at /book/63038803d06f4270b1bf4a738eefe916/
Exception Value: type object 'Book' has no attribute '_default_manager'

Django 文档说 Django 负责创建默认管理器。我不确定为什么我的代码会引发此错误。任何提示表示赞赏。请帮忙。谢谢!

4

0 回答 0