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
.
的东西
我目前正在尝试学习如何使用 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
.