html шаблон покажите мне пустую страницу

#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 }}