#html #django #templates
#HTML #django #шаблоны
Вопрос:
когда я пытаюсь запустить серверный проект, 1-й pg, который содержит список имен, после того, как я проверю один из них, он должен показать мне детали для этого имени, но на самом деле это не работает, pg был пуст, не могли бы вы сказать мне, в чем моя ошибка? спасибо
проект urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('new2/', include('new2.urls')),
]
приложение (new2) urls.py:
from django.contrib import admin
from django.urls import path,re_path
from new2 import views
urlpatterns = (
# path('admin/', admin.site.urls),
path('', views.index, name='index'),
re_path(r'(?P<task_id>[0-9] )/$', views.details, name='details')
)
views.py:
from django.shortcuts import render
from django.http import HttpResponse
from .models import Task
from django.template import loader, RequestContext
from django.template.response import TemplateResponse
def index(request):
list_task = Task.objects.all()
template = loader.get_template('new2/index.html')
RequestContext = {
'list_task': list_task
}
return HttpResponse(template.render(RequestContext,request))
def details(request, task_id):
detail = Task.objects.get(pk=task_id)
RequestContext = {
'detail' : detail
}
return render(request,'new2/details.html',RequestContext)
models.py:
from django.db import models
class Task(models.Model):
def __str__ (self):
return self.Name_task
Name_task = models.CharField(max_length=200)
Age_task = models.CharField(max_length=200)
details.html:
{{Task.Name_task}}</br>
{{Task.Age_task}}
Ответ №1:
Вы передали Task
объект как detail
переменную:
def details(request, task_id):
detail = Task.objects.get(pk=task_id)
context = {
'detail' : detail
}
return render(request,'new2/details.html', context)
это означает, что вы отображаете его в шаблоне как:
{{ detail.Name_task }}</br>
{{ detail.Age_task }}