Функция() получила несколько значений для аргумента 'pk'
В настоящее время моей программе необходимо печатать отчеты для каждой записи базы данных в модели настроек.
Он считывает pk модели и использует его для проверки элементов записи настроек.
Однако я получаю ошибку trialBalanceMonthly() got multiple values for argument 'TBMreports_pk'
при нажатии на кнопку, которая должна распечатать отчет.
Вот мой код :
reportsHome.html:
{% for x in model %}
<a href="#" class='list-group-item active'>{{ x.Complex }} Reports</a>
<div>
<hr>
<a href="{% url 'trialBalanceMonthly' TBMreports_pk=x.pk %}" type="button" class="btn btn-outline-primary btn-sm" >{{ x.Complex }} Trial Balance Monthly</a>
<a href="{% url 'trialBalanceYearly' TBYreports_pk=x.pk %}" type="button" class="btn btn-outline-primary btn-sm" >{{ x.Complex }} Trial Balance YTD</a>
<br>
<a href="{% url 'incomeStatementMonthly' ISMreports_pk=x.pk %}" type="button" class="btn btn-outline-primary btn-sm" >{{ x.Complex }} Income Statement Monthly</a>
<a href="{% url 'incomeStatementYearly' ISYreports_pk=x.pk %}" type="button" class="btn btn-outline-primary btn-sm" >{{ x.Complex }} Income Statement YTD</a>
<hr>
</div>
<br>
{% endfor %}
Views.py (я удалил часть кода, который генерирует переменные, чтобы сделать этот вопрос более воспроизводимым)
-- Вот как выглядит каждая из функций представления отчетов
def trialBalanceMonthly(TBMreports_pk):
pkForm = get_object_or_404(SettingsClass, pk=TBMreports_pk)
complexName = pkForm.Complex
### Printing Trial Balance PDF
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename=TrialBalanceMonthly' + \
str(datetime.now()) + '.pdf'
response['Content-Transfer-Encoding'] = 'binary'
content = {'printDescM': printDescM, 'printAccM': printAccM, "xtrbMonth": xtrbMonth,
'xCreditTotalM': xCreditTotalM, 'xDebitTotalM': xDebitTotalM, 'complexName': complexName,
'printZeroM': printZeroM}
html_string = render_to_string('main/reports/trialBalanceMonthly.html', content)
html = HTML(string=html_string)
result = html.write_pdf()
with tempfile.NamedTemporaryFile(delete=True) as output:
output.write(result)
output.flush()
output.seek(0)
response.write(output.read())
else:
redirect('main/reportsHome')
Urls.py:
#Print Each Report
path('accConnect/trialBalanceMonthly/<int:TBMreports_pk>' , views.trialBalanceMonthly, name='trialBalanceMonthly'),
path('accConnect/trialBalanceYearly/<int:TBYreports_pk>' , views.trialBalanceYearly, name='trialBalanceYearly'),
path('accConnect/incomeStatementMonthly/<int:ISMreports_pk>', views.incomeStatementMonthly, name='incomeStatementMonthly'),
path('accConnect/incomeStatementYearly/<int:ISYreports_pk>', views.incomeStatementYearly, name='incomeStatementYearly'),
]
Ниже приведено точное сообщение об ошибке (когда я нажимаю на кнопку Trial balance monthly)
TypeError at /accConnect/trialBalanceMonthly/2
trialBalanceMonthly() got multiple values for argument 'TBMreports_pk'