эй, я пытаюсь изменить мой todoapp, чтобы он был указан пользователем c с точки зрения доступа к спискам задач, но я столкнулся с проблемой в изменении моих представлений на основе классов для достижения sh этого , например, для обеспечения что, когда я создаю задачу, она добавляется в список зарегистрированных пользователей , вот мой текущий код
models.py
from django.db import models
from django.urls import reverse
from django.contrib.auth.models import User
from django.utils import timezone
import datetime
# Create your models here.
class TodoList(models.Model):
user = models.ForeignKey(
User, on_delete=models.CASCADE, related_name="todolist", null=True)
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Todo(models.Model):
todolist = models.ForeignKey(
TodoList, on_delete=models.CASCADE)
name = models.CharField(max_length=100, default='unamedTodo')
description = models.CharField(max_length=200)
Todo_date = models.DateTimeField('Todo Date')
pub_date = models.DateTimeField('Date Published')
def get_absolute_url(self):
return reverse('ToDo:detail', kwargs={'id': self.id})
def get_back_home(self):
return reverse('ToDo:todos', kwargs={})
def go_to_update(self):
return reverse('ToDo:update', kwargs={'id': self.id})
def go_to_delete(self):
return reverse('ToDo:delete', kwargs={'id': self.id})
views.py
from .forms import TodoForm
from .models import Todo
from django.template import loader
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
from django.contrib.auth.forms import UserCreationForm
from django.views.generic import (
CreateView,
ListView,
DetailView,
UpdateView,
DeleteView
)
from django.urls import reverse, reverse_lazy
from django.shortcuts import render, get_object_or_404
# Create your views here.
@method_decorator(login_required, name='dispatch')
class TodoListView(ListView):
template_name = 'ToDo/todo_list.html'
queryset = Todo.objects.all()
@method_decorator(login_required, name='dispatch')
class TodoDetailView(DeleteView):
template_name = 'ToDo/todo_detail.html'
queryset = Todo.objects.all()
def get_object(self):
id_ = self.kwargs.get("id")
return get_object_or_404(Todo, id=id_)
@method_decorator(login_required, name='dispatch')
class TodoCreateView(CreateView):
template_name = 'ToDo/todo_create.html'
form_class = TodoForm
queryset = Todo.objects.all()
@method_decorator(login_required, name='dispatch')
class TodoUpdateView(UpdateView):
template_name = 'ToDo/todo_create.html'
form_class = TodoForm
queryset = Todo.objects.all()
def get_object(self):
id_ = self.kwargs.get("id")
return get_object_or_404(Todo, id=id_)
@method_decorator(login_required, name='dispatch')
class TodoDeleteView(DeleteView):
template_name = 'ToDo/todo_delete.html'
#queryset = Todo.objects.all()
def get_object(self):
id_ = self.kwargs.get('id')
return get_object_or_404(Todo, id=id_)
def get_success_url(self):
return reverse('ToDo:todos')
# signup view
class SignUp(CreateView):
template_name = 'ToDo/registration/signup.html'
form_class = UserCreationForm
success_url = reverse_lazy('login')