Django 文件未在实际网站中显示输入数据

Django file not showing input data in actual website

我目前正在尝试学习如何使用 django 构建网站,但我在模型中的输入数据未正确显示

'''

from django.db import models

class products(models.Model):
    name = models.CharField(max_length=255)

    def __str__(self):
        return self.name

class typeWork(models.Model):
    work = models.CharField(max_length = 255)
    hoursWorked = models.IntegerField()
    number_in_stock = models.IntegerField()
    daily_rate = models.FloatField()
    genre = models.ForeignKey(products, on_delete=models.CASCADE)

'''

models.py

'''

from django.urls import path
from . import views

urlpatterns = [
   path('hello/', views.hello, name='hello')
]

''' urls.py

from django.shortcuts import render
from django.http import HttpResponse
from .models import typeWork


def hello(request):
    products2 = {typeWork.objects.all()}
    return render(request, 'index.html', {products2})

views.py 略有改动,因为我正在弄乱它以尝试修复它图像显示代码没有任何改动,而我最初的问题是由该代码引起的

views.py

<table class="table">
<thead>
    <tr>
        <th>Work</th>
        <th>Type of Work</th>
        <th>Hours needed</th>
    </tr>
</thead>
<tbody>
    {% for products2 in products%}
        <tr>
            <td>{{products2.work}}</td>
            <td>{{products2.genre}}</td>
            <td>{{products2.hoursWorked}}</td>
        </tr>
    {% endfor %}
    
</tbody>

indes.html 也略有改动图像将在我尝试再次修复之前显示原始代码 index.html

Actual error and what it does show currently

您可以尝试通过 so-called“上下文字典”传递您的 products2 变量。

views.py 的更新版本: 我目前正在尝试学习如何使用 django 构建网站,但我在模型中的输入数据未正确显示

from django.shortcuts import render
from django.http import HttpResponse
from .models import typeWork


def hello(request):
    products2 = typeWork.objects.all()
    context = {"products2": products2}
    return render(request, 'index.html', context)

当您放置 {} 符号时,您对如何传递这些变量有一些想法,但只有在这些符号之间添加名称才能传递一个集合。字典意味着花括号 + 一组 key-value 对。

主要思想是,每次您尝试将数据传递给视图时,都需要通过字典来完成。您使用的密钥也将在模板中使用。用我写的代码替换你的代码,你会没事的,因为你的模板正在迭代一个叫做 products2.

的东西