Почему не выводятся данные из модели Django

файл models.py

from django.db import models
from django.contrib.auth.models import User

class UserCoin(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    coin = models.DecimalField(null=False, decimal_places=2, max_digits=1000, default=1)

    def __str__(self):
        return f'{self.coin}'

views.py

from django.shortcuts import render
from django.contrib.auth.models import User
from django.views.generic import DetailView
from register.models import UserCoin

def index2(request):
    username = User.objects.all()
    return render (request, 'main2/index2.html', {'username':username})

    usercoin = UserCoin.objects.all()
    return render (request, 'main2/index2.html', {'usercoin':usercoin})

class Users(DetailView):
    model = User
    template_name = 'index2.html'
    context_object_name = 'user'

class Coins(DetailView):
    model = UserCoin
    template_name = 'index2.html'
    context_object_name = 'coin'

html шаблон(не полностью)

{% block content %}
    <header>
        <div class="Top_menu">
            <ul>
                <li><a href="">{{ request.user.username }}</a></li>
                <li><a href="">{{ request.coin.usercoin }}</a></li>
            </ul>
        </div>

пытаюсь вывести поле usercoin, но оно не выводится в отличие от username

В вашем случае в функции index2 второй return выполняться не будет, потому что после первого return произойдет выход из функции. Чтобы исправить вашу ошибку, нужно дополнить контекст данными из второго return:

def index2(request):
    username = User.objects.all()
    usercoin = UserCoin.objects.all()
    return render(
        request,
        'main2/index2.html',
        {
            'username': username,
            'usercoin': usercoin
        }
    )
Вернуться на верх