html 中无法呈现 Django 模型

Django model can't be render in html

我创建了一些模型,但它不会在模板中呈现,有些还可以,所以我只是使用相同的方法创建另一个模型,但是当我尝试 manage.py runserver some模型的部分未渲染,我已经做了 manage.py makemigrations 和 manage.py 迁移,抱歉,这是我第一次在这里提问,谢谢

这是我的views.py

from django.shortcuts import render
from django.http import HttpResponse
from .models import FrontPage, DailyQuote, Photo, kate


# Create your views here.

def front(request):
    photo = Photo.objects.all()
    content = {'photo': photo}
    return render(request, 'front.html', content)


def home(request):
    page = FrontPage.objects.all()
    args = {'page':page}
    return render(request, 'Home.html', args)

def ytvideos(request):
    return render(request, 'ytvideos.html')

def reading(request):
    page = FrontPage.objects.all()
    Fullpage = {'page': page}
    return render(request, 'Reading.html', Fullpage)

def KGK(request):
    Thekate = kate.objects.all()
    Therealkate = {'Thekate': Thekate}
    return render(request, 'KGK.html', Therealkate)

这是我的HTML

{% extends 'front.html' %}

{% block head %}



{% endblock %}

{% block content %}

  <div class="container-fluid">
      {% for i in kate %}
      <div class="card text-center">
        <div class="card-header">
            <b>kate</b>
        </div>
        <div class="card-body">
            <h5 class="card-title">{{ i.katetitle }}</h5>
            <p class="card-text">{{ i.katecontent }}</p>
            <a href="#" class="btn btn-primary">Read More</a>
        </div>
      </div>
      {% endfor %}
  </div>





{% endblock %}

这是我的admin.py

from django.contrib import admin
from .models import FrontPage, DailyQuote, Photo, kate

# Register your models here.
admin.site.register(FrontPage)
admin.site.register(DailyQuote)
admin.site.register(Photo)
admin.site.register(kate)

这是我的models.py

from django.db import models


# Create your models here.

class FrontPage(models.Model):
    Title = models.CharField('Title', max_length=20)
    Content = models.TextField('Content', max_length=100)
    short = models.TextField('short', max_length=150)
    date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.Title

    class Meta:
        ordering = ['-date']


class DailyQuote(models.Model):
    Quote = models.TextField('Quote', max_length=200)
    Author = models.CharField('Author', max_length=50)

    def __str__(self):
        return self.Quote


class Photo(models.Model):
    Picture = models.ImageField('Image', upload_to="images/")
    Caption = models.CharField('Caption', max_length=20)
    text = models.TextField('text', max_length=50)
    date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.text

    class Meta:
        ordering = ['-date']

class kate(models.Model):
    katetitle = models.CharField('Title', max_length=20)
    katecontent = models.TextField('Content', max_length=100)
    date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.katecontent

    class Meta:
        ordering = ['-date']

我的urls.py

from django.urls import path

from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('front', views.front, name='front'),
    path('ytvideos', views.ytvideos, name='ytvideos'),
    path('Reading', views.reading, name='reading'),
    path('KGK', views.KGK, name='KGK'),
]

Therealkate = {'Thekate': Thekate}

中的字典键为 'Thekate'

它试图找到一个叫做 'kate' 的东西,它实际上应该叫做 'Thekate'

这应该可以解决问题-

  <div class="container-fluid">
  {% for i in Thekate %}
  <div class="card text-center">
    <div class="card-header">
        <b>kate</b>
    </div>
    <div class="card-body">
        <h5 class="card-title">{{ i.katetitle }}</h5>
        <p class="card-text">{{ i.katecontent }}</p>
        <a href="#" class="btn btn-primary">Read More</a>
    </div>
  </div>
  {% endfor %}

在for循环中,我只是把'kate'改成了'Thekate'

希望有用!