Получить одну запись из БД в Django - PullRequest
1 голос
/ 24 февраля 2020

views.py

from .models import Customer as CustomerModel

class Balance_Enquiry(TemplateView):
    template_name = 'balance_enuiry.html'

    def get(self, request, *args, **kwargs):
        if "user_id" in request.session:
            try:
                customer = CustomerModel.objects.get(user_id=request.session["user_id"])
                args = {'form': form, 'posts': customer}
                return render(request, self.template_name, args)
            except Exception as e:
                return HttpResponse('failed: {}'.format(e), 500)

template

{% extends 'home.html' %}

{% load crispy_forms_tags %}

{% block title %}Balance Enquiry{% endblock %}

{% block content %}

    <form method="get" >
    {% csrf_token %}

        <table border="5">
            <tr>
            <th>Amount</th>
                <th>Contact</th>
            </tr>
     {% for get in customer %}
            <tr>
                <td>{{ get.amount }}</td>
                <td>{{ get.contact }}</td>
            </tr>
            {% endfor %}

я просто хочу получить запись одного человека после входа в систему, чтобы показать запись этого человека, но она ничего не показывает на экране, она отображается просто пусто и даже не выдает никакой ошибки

1 Ответ

1 голос
/ 24 февраля 2020

Если вы получаете отдельные данные с помощью метода get(), вы не можете получить l oop, потому что вы берете не повторяемый объект. Удалите для l oop в вашем шаблоне. Также вы должны использовать одно и то же ключевое слово для переменных контекста и шаблона.

views:

args = {'form': form, 'customer': customer}

templates:

    <tr>
        <td>{{ customer.amount }}</td>
        <td>{{ customer.contact }}</td>
    </tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...