Не переопределяется свойство в классе
Есть три класса:
class ToDoListManager(models.Manager):
def for_user(self, user):
return self.get_queryset().filter(owner=user)
# Create your models here.
class ToDoList(models.Model):
title = models.CharField(max_length=100)
owner = models.ForeignKey(User, models.CASCADE)
objects = ToDoListManager()
def __str__(self):
return self.title
(дальше в другом файле)
class ToDoListListView(LoginRequiredMixin, ListView):
login_url = reverse_lazy("account_login")
template_name = 'tasks/index.html'
def get_queryset(self):
return ToDoList.objects.for_user(self.request.user)
ToDoList.objects
в классе ToDoListListView
ссылается не на ToDoListManager
, как мы переопределили в ToDoList
, а на BaseManager[ToDoList]
, если в VS Code навести курсор на objects. Все импорты правильные. Смысла делать print(type(ToDoList.objects))
Я не вижу, потому что итак, когда я обращаюсь по урлу http://127.0.0.1:8000/list/1/
, в брузере ничего не выводится. Только шаблон:
{% extends 'base.html' %}
{% block content %}
{% if object_list %}
<h3>All list</h3>
<ul>
{% for todo in object_list %}
<li>
<div role="button" onclick="">{{ todo.title }}</div>
</li>
{% endfor %}
</ul>
{% else %}
<h3>You have't list</h3> вот это выводится, хотя список есть
{% endif %}
{% endblock %}
В сеттингсах приложения вроде всё верно. Пакет должен найти, но он всё равно не хочет видеть.
BASE_DIR = Path(__file__).resolve().parent.parent
Если нужно, вот структура:
├── manage.py
├── tasks
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_create_task_models.py
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── todo
│ ├── asgi.py
│ ├── __init__.py
│ ├── settings.py здесь и прописан BASE_DIR = Path(__file__).resolve().parent.parent
│ ├── urls.py
│ └── wsgi.py
└── users
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ ├── 0001_craete_user_admin_models.py
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
Что делать?