Как реализовать кнопку “Удалить” на Django?

90
27 ноября 2020, 00:40

Я делаю простейшую тудушечку. Нужна помощь в реализации удаления выполненных задач.

Пользователь на странице удаляет задачу. Он нажимает кнопку "delete" и задача исчезает. Я хз, как это реализовать, поэтому прошу скинуть готовое решение или где можно прочитать про реализацию списка задач на Django.

Заранее спасибо.

Моя код:

models.py

    from django.db import models
    class Task (models.Model):
        # Task in this app.
        name = models.CharField(max_length=200)
        date_added = models.DateTimeField(auto_now_add=True)
        def __str__(self):
            return self.name

views.py

    from django.shortcuts import render
    from .models import Task
    # Home page.
    def index(request):
        tasks = Task.objects.order_by('date_added')
        context = {'tasks': tasks}
        return render(request, 'work_list/index.html', context)
    # Delete your task.
    def delete_task(request, task_id):
        task = Task.objects.get(id=task_id)
        task.objects.delete()
        tasks = Task.objects.order_by('date_added')
        context = {'tasks': tasks}
        return render(request, 'work_list/index.html', context)

urls.py

    # URL for work_list.
    from django.urls import path
    from . import views
    app_name = 'work_list'
    urlpatterns = [
        # Home page.
        path('', views.index, name='index'),
        ]

index.html

    <h1>Best list ToDo</h1>
    <h2>You`re tasks:</h2>
    <ul>
        {% for task in tasks %}
            <li>
                {{ task }} 
            </li>
        {% empty %}
            <p>You haven`t actually task.</p>
        {% endfor %}
    </ul>
Answer 1
  1. Вам необходимо в urls.py создать URL для вашего вью delete_task.
  2. В html шаблоне сделать ссылку на этот URL, например, так: <a href="{% url 'delete' 1 %}"> Удалить </a> - При переходе по ссылке будет выполнен код из delete_task, и задача с id=1 будет удалена. Вместо 1 можете вставлять любой id через js, например.
READ ALSO
Маппинг классов в C# по имени свойств?

Маппинг классов в C# по имени свойств?

Как на C# или через LINQ сделать такое:

113
Размещение remarks документации к методам

Размещение remarks документации к методам

Скажите, куда необходимо помещать блок <remarks>

81
Можно ли с помощью google drive получать видео для unity

Можно ли с помощью google drive получать видео для unity

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

103
Навсегда свернуть #region или часть кода

Навсегда свернуть #region или часть кода

Часто бывает так, что когда в коде создаешь пару из #region #endregion то после перезапуска VS, или даже просто запуска приложения для отладки (и по другим...

96