#django #django-models #django-views #django-forms
Вопрос:
Все объекты были успешно сохранены в панели администратора, но не получают динамические данные в index.html страница с панели администратора.
**views.py**
from django.shortcuts import render
from .models import home
# Create your views here.
def home(request):
homeobject = home.objects.all()
return render(request, 'index.html', {'homes': homeobject})
**models.py**
class home(models.Model):
HOME_CATEGORY = [
('SR', 'Service'),
('VL', 'Vlog'),
('CR', 'course'),
]
title = models.CharField(max_length=120)
description = models.TextField()
image = models.ImageField(upload_to='images')
home_category = models.CharField(max_length=2, choices=HOME_CATEGORY)
**index.html**
{% for home in homes %}
{{home}}
{% endfor %}
Ответ №1:
имя вашей функции представления определяется как home
, а ваша модель называется home
вы определяете home
как функцию, поэтому, когда вы переходите к доступу home.objects
, python видит не вашу модель home
, а функцию home
Измените имя класса модели с home
на Home
и выполните миграцию — миграция . Также не забудьте изменить запрос Home.objects.all()
index.html
{% for home in homes %}
<h1> {{home.title}} </h1>
<p> {{home.description}} </p>
<img src={{home.image.url}} />
{% endfor %}
Комментарии:
1. не решена,ошибка в том, что объект «функция» не имеет атрибута «объекты»
2.Измените название модели на
class Home(models.Model):
и попробуйте . Также не забудьте отредактироватьhomeobject = Home.objects.all()
иpython manage.py makemigrations
python manage.py migrate