Файл Django не отображает входные данные на реальном сайте
В настоящее время я пытаюсь научиться использовать 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)
'''
'''
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 немного изменен, так как я возился с ним, чтобы попытаться исправить это. На изображении показан код без изменений и моя первоначальная проблема, возникающая из-за этого кода
<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
Актуальная ошибка и что она показывает в настоящее время
Вы можете попробовать передать вашу переменную 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)
У вас было некоторое представление о том, как передать эти переменные, когда вы поместили символы {}
, но только добавление имен между этими символами передаст набор. Словарь будет означать фигурные скобки + набор пар ключ-значение.
Основная идея заключается в том, что каждый раз, когда вы пытаетесь передать данные в представление, вам нужно будет делать это через словарь. Ключ, который вы используете, будет также использоваться в шаблоне. Заменив ваш код на тот, который я написал, вы будете в порядке, потому что ваш шаблон итерирует через что-то под названием products2
.