Задать вопрос
@sodden13

Как сделать ссылки между html файлами в django?

Добрый день! Недавно начал изучать Django. Решил создать что-то типо todo-листа в качестве тренировочного проекта. Я сделал вывод задачи из бд в html, по клику на который пользователя переадресуют на страницу с полным описанием задачи + кнопками для редактирования и удаления. В приложении main содержится логика и вывод задач на экран. А вот редактирование я решил сделать отдельным приложением - remove_edit. В процессе я столкнулся с проблемой: как мне из html файла в main сделать переадресацию на html-файлы в remove_edit через {% url '' %} и при том еще передавать id задачи в url. Вот моя писанина:

# urls.py в корневой папке todolist
from django.contrib import admin
from django.urls import path, include
from main.urls import patterns
from remove_edit.urls import patterns_

urlpatterns = [
    path('admin/', admin.site.urls),
    path('categories/', include(patterns)),
    path('change/', include(patterns_))
]

# views.py в main
from django.shortcuts import render, HttpResponse
from .models import Tables, Tasks
# Create your views here.

def filter_url(request, slug='all'):
    try:
        table = Tables.objects.get(slug=slug)
        category = table.category
        tasks = Tasks.objects.filter(category=table.id)
    except:
        tasks = Tasks.objects.all()
        category = 'All'

    context = {
        'tasks': tasks,
        'table_name': category
    }

    return render(request, 'show_tasks.html', context)


def task_menu(request, task_id):
    task = Tasks.objects.get(id=task_id)

    context = {
        'task_data': task
    }

    return ren

# urls.py в main

from django.urls import path
from . import views


patterns = [
    path('<slug:slug>/', views.filter_url, name='category'),
    path('task-data/<int:task_id>/', views.task_menu, name='taskMenu')
]


task_data.html:
<div class="task_data">
    <b>Title: </b> {{ task_data.title }}<br>
    <b>Discription: </b> {{ task_data.discription }}<br>
    <b>Date of create: </b> {{ task_data.date }}<br>
</div>


<a href="{% url 'change:edit' task_data.id %}">
    <div>Edit</div>
</a>
<a href="">
    <div>Delete</div>
</a>


# views.py в remove_edit
def edit(request, taskId):
    return render(request, 'remove.html', {"id": taskId})


def remove(request, taskId):
    return render(request, 'edit.html', {"id": taskId})

# urls.py в remove_edit
from django.urls import path
from . import views

app_name = 'change'

patterns_ = [
    path('remove/<int:taskId>/', views.remove, name='remove'),
    path('edit/<int:taskId>', views.edit, name='edit')
]


Помогите пожалуйста :(
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы