User Authentication Based Django App
  • Python Django
  • Basic Python Virtual Environment Setup
  • Project Set Up
  • Model-View-Templates Implementation
  • Model & Django Admin Area
  • View
    • Types of Views in Django
    • Project Todo Views
  • Django Templates
  • Todo App
    • DEMO: Workflow of Todo App
    • Base Template for Todo App
    • Registration Module
    • Login Module
    • Linking Login and Registration page
    • Task List User Authentication
    • Task Reordering
    • Logout Module
    • Task Create Module
    • Task Update
    • Task Delete
Powered by GitBook
On this page
  • 1. Create template for Task Update module.
  • 2. Create view function for Task Update module
  • 3. Mapping URLs to Task Create view.
  • 4. Update the task_list.html
  • add href value to line no. 46 and 48 in task_list.html
  • 5. Run the development server to check the functionality:
  1. Todo App

Task Update

Steps to Develop a Task Update module.

1. Create template for Task Update module.

templates/todo/task_form.html

{% extends 'todo/main.html' %}
{% block content %}

<div class="header-bar">
    <a href="{% url 'tasks' %}">&#8592; Back</a>
</div>


<div class="card-body">
    <form method="POST" action="">
        {% csrf_token %}
        {{form.as_p}}
        <input class="button" type="submit" value="Submit">
    </form>
</div>


{% endblock content %}

2. Create view function for Task Update module

  1. Import Statements:

    from django.contrib.auth.mixins import LoginRequiredMixin
    from django.urls import reverse_lazy
    from django.views.generic.edit import UpdateView
    from .models import Task  # Import your Task model

    These statements import the necessary classes for creating a Task Create view and applying the LoginRequiredMixin.

  2. Class Definition:

class TaskUpdate(LoginRequiredMixin, UpdateView):
    model = Task
    fields = ['title', 'description', 'complete']
    success_url = reverse_lazy('tasks')

Here's a breakdown of the code:

  • TaskUpdate is a class-based view for updating a Task model instance.

  • LoginRequiredMixin is a mixin provided by Django. It enforces that the user must be logged in to access the view. If the user is not logged in, they will be redirected to the login page.

  • UpdateView is another Django generic view that simplifies the process of updating model instances. It automatically generates a form based on the model's fields and handles the updating process.

  • model = Task specifies the model that this view will be dealing with, which is the Task model in this case.

  • fields = ['title', 'description', 'complete'] defines the fields from the Task model that will be included in the generated form for updating the task instance.

  • success_url = reverse_lazy('tasks') sets the URL to which the user will be redirected after successfully updating a task. In this case, it's set to the 'tasks' URL.

This code ensures that a updated task is associated with the currently logged-in user when it is created.

3. Mapping URLs to Task Create view.

Make sure you have the necessary URLs and other configurations in place to use this Task Create view. For example, in your urls.py file, you might have something like:

from django.urls import path

from .views import TaskUpdate

urlpatterns = [
    path('task-update/<int:pk>/', TaskUpdate.as_view(), name='task-update'),
    # Add other URL patterns as needed
]

4. Update the task_list.html

add href value to line no. 46 and 48 in task_list.html

href="{% url 'task-update' task.id %}"

5. Run the development server to check the functionality:

Start the development server if it's not running already:

python manage.py runserver

Access the interface by visiting http://localhost:8000/ in your web browser.

PreviousTask Create ModuleNextTask Delete

Last updated 1 year ago