Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Project(models.Model):
- name = models.CharField(max_length=100)
- description = models.TextField()
- date_created = models.DateTimeField(default=timezone.now)
- author = models.ForeignKey(User, on_delete=models.CASCADE)
- class Task(models.Model):
- name = models.CharField(max_length=50, default='New Model')
- project = models.ForeignKey(Project, on_delete=models.CASCADE)
- date_created = models.DateTimeField(default=timezone.now)
- class TaskDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView):
- model = Task
- template_name = 'tasks/confirm_delete.html' # template for deletion
- success_url ='/projects/'
- # Test user permission
- def test_func(self):
- task = self.get_object()
- if self.request.user == task .project.author:
- return True
- else:
- return False
- def get_success_url(self):
- project = self.object.
- return reverse_lazy('tasks-listview', kwargs={'pk': project.id })
- urlpatterns = [
- path('tasks/<int:pk>/list/', TasksListview.as_view(), name='tasks-listview'),
- path('tasks/<int:pk>/delete/', TaskDeleteView.as_view(), name='task-delete'),
- ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement