Невозможно отобразить значение на веб-странице с помощью Django - PullRequest
0 голосов
/ 26 июня 2018

Я хочу отобразить некоторые значения, которые запрашиваются из mysql в методе внутри views.py на веб-странице, но я не вижу этого на веб-странице.см. мой метод в views.py:

def update_delete_customer(request, id):
    if request.method == 'POST':
        print("TODO")

    else:
        form = CustomerForm()
        if id is None:
            print("id is None")
            return HttpResponseRedirect('AddressTableMaintain/')
        print("----------------")
        print(id)
        customerList = Customer.objects.raw("select * from customers where customer_id = %s", [int(id)])
        customer = list(customerList)[0]
        print(customer)
        form.customerId = customer.customerId
        form.first_name = customer.first_name
        form.last_name = customer.last_name
        print(customer.customerId)
        print(customer.first_name)
        print(customer.last_name)
        return render(request, 'EditCustomer.html', {'form': form})
    return HttpResponseRedirect('AddressTableMaintain/')

Я вижу выходной идентификатор клиента, имя, фамилию, которые генерируются функцией печати в консоли.Ниже приведено содержимое моего EditCustomer.html:

{% extends 'base.html' %}

{% block title %} Remove or Update customer {% endblock %}

{% block content %}
<style>
table, th, td {
    border: 1px solid black;
    border-collapse: collapse;
}
</style>
<form action="{% url 'RU_customer_post' %}" method="post">
{% csrf_token %}
<table width="50%" align="center">
    <tr>
        <td>Customer ID</td>
        <td>
            {{ form.customer_id }}

        </td>
    </tr>
    <tr>
        <td>First Name</td>
        <td>
            {{ form.first_name }}

        </td>
    </tr>

    <tr>
        <td>Last Name</td>
        <td>
            {{ form.last_name }}
        </td>
    </tr>
    <tr>
        <td colspan="2" align="center"><input type="submit" value = "OK" /></td>
    </tr>
</table>
</form>
{% endblock %}

Мой ожидаемый результат заключается в том, что значение должно быть привязано к веб-странице и отображено, но фактический эффект выглядит следующим образом:

enter image description here

Итак, кто-то может сказать мне, почему и как это исправить?

1 Ответ

0 голосов
/ 26 июня 2018

Заменить:

    form = CustomerForm()
    if id is None:
        print("id is None")
        return HttpResponseRedirect('AddressTableMaintain/')
    print("----------------")
    print(id)
    customerList = Customer.objects.raw("select * from customers where customer_id = %s", [int(id)])
    customer = list(customerList)[0]

на:

    if id is None:
        print("id is None")
        return HttpResponseRedirect('AddressTableMaintain/')
    print("----------------")
    print(id)
    customerList = Customer.objects.raw("select * from customers where customer_id = %s", [int(id)])
    form = CustomerForm(list(customerList)[0])

Возможно, связано: Почему вы используете сырой SQL вместо гораздо более простого:

    customer = Customer.objects.get(pk=id)

, которыйвернет одного клиента, которого вы ищете?

...