Вывод данных из бд postgresql на django
У меня есть данные в БД postgres, а мне надо вывести эти данные на страницу шаблона, но ничего не выводится.
settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'walkie_talkie',
'USER': 'postgres',
'PASSWORD': '1111',
'HOST': '127.0.0.1',
'PORT': '5432'
}
}
models.py:
class State(models.Model):
id = models.AutoField(primary_key=True)
state_name = models.CharField('Название поста', max_length=380)
def __str__(self):
return self.id
class Meta:
verbose_name = 'Пост'
verbose_name_plural = 'Посты'
forms.py:
class StateForm(ModelForm):
class Meta:
model = State
fields = ['id', 'state_name']
widgets = {
"id": TextInput(attrs={
'class': 'form-control',
'placeholder': 'Порядковый номер'
}),
"state_name": TextInput(attrs={
'class': 'form-control',
'placeholder': 'Название поста'
}),
}
views.py:
def state_page(request):
state = State.objects.all()
return render(request, 'news/state.html', {'state': state})
def info_state(request):
state_form = StateForm
state_data = {
'form': state_form
}
return render(request, 'news/state.html', state_data)
state.html:
{% extends 'main/base.html' %}
{% block title %}
State
{% endblock %}
{% block content %}
<div class="features">
<h1>State</h1>
{% if state %}
{% for el in state %}
<div class="alert alert-warning">
<h3>{{ el.id }}</h3>
<p>{{ el.state_name }}</p>
</div>
{% endfor %}
{% else %}
<p>Нет записей!</p>
{% endif %}
</div>
{% endblock %}