Определение функции представления для отображения данных postgres в django

Я создал базу данных вин в postgresql (содержащую ID, названия и т.д.), и вставил около 300 наблюдений. Я хотел бы отобразить названия каждого вина в выпадающем меню с помощью django. urls.py правильно настроен. Что я сделал до сих пор:

models.py

from django.db import connection
from django.db import models

class ListWines(models.Model):
    name = models.CharField(max_length=200)

views.py

from django.shortcuts import render
from wineapp.models import ListWines

def showallwines(request):
    wines = ListWines.objects
    return render(request, 'main.html', { 'name':wines } )

main.html

<!DOCTYPE html>
<head>
    <body>
        <select>
            <option disabled = "True" selected>Select your favourite wine!</option>
            {% for wines in showallwines %}
            <option>{{wines.name}}</option>
            {% endfor %}
        </select>
    </body>
</head>

База данных postgres (столбец, содержащий данные, которые я хочу отобразить, name) связана с приложением с помощью setings.py, однако она не показывает имена.

Как мне переопределить мои функции, чтобы увидеть отображение в выпадающем меню main.html?

Чтобы получить список всех объектов, необходимо использовать Model.objects.all()

Сделайте эти изменения в вашем представлении

def showallwines(request):
    wines = ListWines.objects.all() # changed
    # changed context name to wines since it is list of wines not names.
    return render(request, 'main.html', { 'wines': wines } )

main.html

Необходимо использовать имя контекста wines, так как мы передаем контекст wines из представления

{% for wine in wines %}
    <option>{{ wine.name }}</option>
{% endfor %}

views.py

Вместо ListWines.objects используйте ListWines.objects.all() и обновите имя контекста на "showallwines" this.

def showallwines(request):
    wines = ListWines.objects.all()
    return render(request, 'main.html', { 'showallwines':wines } )
Вернуться на верх