Добрый день! Недавно начал изучать 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')
]
Помогите пожалуйста :(