Django AttributeError: тип объекта «Книга» не имеет атрибута «_default_manager» - PullRequest
0 голосов
/ 27 октября 2019

Я создал простое веб-приложение Django, используя интеграцию django-neomodel . При попытке создать новую книгу, в «http://localhost:8000/book/new" и после ее отправки, я вижу ошибку, как показано в трассировке.

Я искал в Интернете, и в большинстве случаев,Похоже, что ошибки связаны с некоторыми опечатками при указании названия модели или непреднамеренным использованием строк. Я дважды проверил по таким причинам, но не вижу таких проблем в своем коде.

Кроме того, япытался использовать формы, создавая форму и задавая форму в представлениях, а не саму модель. Но я вижу ту же ошибку и в этом случае.

models.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})

views.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"

urls.py

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

Traceback:

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 заботится о создании менеджера по умолчанию. Я не уверен, почему эта ошибка генерируется с моим кодом. Любые советы приветствуются. Пожалуйста, помогите. Спасибо!

...