Замена значений в SQL-запросах
Я создал приложение для печати пробного баланса из некоторых элементов базы данных в соответствии с приведенным ниже кодом.
В настоящее время распечатывается, как показано в следующем примере:
как я могу заменить '0' в таблице на пробелы, чтобы она отображалась как:

Views.py
def Kyletrb(request):
    all =  'SELECT Master_Sub_Account , cAccountTypeDescription , Debit , Credit FROM [Kyle].[dbo].[PostGL] '\
                    'Inner JOIN [Kyle].[dbo].[Accounts] '\
                    'on Accounts.AccountLink = PostGL.AccountLink '\
                    'Inner JOIN [Kyle].[dbo].[_etblGLAccountTypes] as AccountTypes '\
                    'on Accounts.iAccountType = AccountTypes.idGLAccountType'
    cursor = cnxn.cursor();
    cursor.execute(all);
    xAll = cursor.fetchall()
    cursor.close()
    xAll_l = []
    for row in xAll:
        rdict = {}
        rdict["Description"] = row[0]
        rdict["Account"] = row[1]
        rdict["Credit"] = row[2]
        rdict["Debit"] = row[3]
        xAll_l.append(rdict)
    creditTotal = ' Select ROUND(SUM(Credit) , 2) FROM [Kyle].[dbo].[PostGL] WHERE Credit <> 0.0'
    cursor = cnxn.cursor();
    cursor.execute(creditTotal);
    xCreditTotal = cursor.fetchone()
    debitTotal = ' Select ROUND(SUM(Debit) , 2) FROM [Kyle].[dbo].[PostGL] WHERE Debit <> 0.0'
    cursor = cnxn.cursor();
    cursor.execute(debitTotal);
    xDebitTotal = cursor.fetchone()
    return render(request , 'main/Kyletrb.html' , {"xAlls":xAll_l , 'xCreditTotal':xCreditTotal , 'xDebitTotal':xDebitTotal})
HTML:
Как я могу это сделать? Если у кого-нибудь есть пример или документация, пожалуйста, поделитесь .
Есть несколько способов, как можно решить эту проблему.
 Например, вы можете добавить if-statement внутри вашего SQL, чтобы он возвращал пустую строку, если значение равно 0.
 Кроме того, вы можете добавить if-statements внутри вашего Django-Template, который заменяет все значения дебета и кредита, равные 0.
 Другим решением было бы просто использовать ternary if-statements внутри цикла for loop, который заменяет все значения дебета и кредита, равные 0, на пустые Strings.
Ниже я добавлю код для последнего решения.
 for row in xAll:
    rdict = {}
    rdict["Description"] = row[0]
    rdict["Account"] = row[1]
    rdict["Credit"] = row[2] if row[2] != 0 else ""
    rdict["Debit"] = row[3] if row[3] != 0 else ""
    xAll_l.append(rdict)
Желаю удачи.
Чтобы достичь этого результата наиболее простым способом, вы можете реализовать if else внутри вашего шаблона.
Просто пример
Дебет
<td>
    {%if xAll.Debit > 0%}
    {{xAll.Debit}}
    {%endif%}
</td>
За кредит
<td>
    {%if xAll.Credit > 0%}
    {{xAll.Credit}}
    {%endif%}
</td>
Если вам важно, как выглядит ваш код, вы можете создать собственный виджет.
