Джанго | Отсутствующие позиционные аргументыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Джанго | Отсутствующие позиционные аргументы

Сообщение Anonymous »

Итак, у Django сейчас сложилось впечатление, что мне не хватает позиционных аргументов, когда я собираю раздел справки для веб-сайта. Сюда входят справочные статьи, полученные из модели Django.
Все работает как положено, пока я не включу уникальный справочный номер справочной статьи в свой файлviews.py.
Джанго считает, что позиционные аргументы отсутствуют, хотя это просто неправда. Как вы увидите в моем MRE ниже, пропущенных позиционных аргументов нет.
Сообщение об ошибке следующее:
help_center_article_index() missing 1 required positional argument: 'support_article_reference'
MRE:
#utils.py
import requests, random, string
def generate_unique_number(charlimit):

random_string = ''.join(random.choices(string.digits, k=charlimit)) # Generates a random string
return f"{random_string}"

#models.py
from .import utils
class SupportArticles(models.Model):
class TargetGroup(models.TextChoices):
FOR_DEVELOPERS = 'developers','Developers'
FOR_Clients = 'clients','Clients'
FOR_FX_Providers = 'fx-providers','FX Providers'

support_article_reference = models.CharField(max_length=50, default=utils.generate_unique_number(15), editable=False)
support_article_title = models.CharField(max_length=255, verbose_name="Support Article Title")
support_article_body = models.TextField(max_length=5000,verbose_name="Support Article Body")
support_article_tags = models.CharField(max_length=100,default="Separate each tag category with a comma (,)", verbose_name="Support Topic Tags")
support_article_group = models.CharField(max_length=15,choices=TargetGroup.choices,default=TargetGroup.FOR_Clients)

#views.py
from django.shortcuts import render, get_object_or_404
def help_center_article_index(request, group, support_article_reference):

support_article_object = SupportArticles.objects.filter(support_article_group = group, support_article_reference = support_article_reference)
if support_article_object.exists():
meta_property_title = support_article_object.first().support_article_group)
else:
meta_property_title = "No articles available for this group"

context = {

'meta_property_title' : meta_property_title,
'meta_property_description' : meta_property_description,
'support_article_object' : support_article_object,
'group' : group,

}

return render (request, 'help_center_article_index.html', context

#urls.py
from django.urls import path
from django.shortcuts import render
from . import views

urlpatterns = [
path('hc',views.help_center, name="help-center"),
path('hc//',views.help_center_article_index, name="help-center-article"),
]

#help_center_article_index.html

{% for support_article in support_article_object %}

{{ support_article.support_article_title | title}}
{{support_article.support_article_body}}

{% empty %}
{{meta_property_title}}
{% endfor %}


Я не понимаю, почему Django возвращает эту ошибку, когда все позиционные аргументы присутствуют и верны. Как бы я сказал Django, что это сообщение об ошибке не должно поднимать свою уродливую голову?
Пытался прочитать несколько статей, но здесь все бесполезно.
Я ожидал нажать на URL-ссылку, которая приведет меня к соответствующей статье с URL-адресом:
hc//

i.e.

hc/developers/123456789123

Полное сообщение трассировки:
Environment:

Request Method: GET
Request URL: http://127.0.0.1:8000/support/hc/developers

Django Version: 5.0.6
Python Version: 3.12.4
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'legal',
'careers',
'media',
'blog',
'events',
'servicestatus',
'django_bootstrap_icons',
'announcements',
'support']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']

Traceback (most recent call last):
File "C:\Users\xxx\OneDrive - xxx\xxx\.venv\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xxx\OneDrive - xxx\xxx\.venv\Lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Exception Type: TypeError at /support/hc/developers
Exception Value: help_center_article_index() missing 1 required positional argument: 'support_article_reference'


Подробнее здесь: https://stackoverflow.com/questions/791 ... -arguments
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Джанго | Отсутствующие позиционные аргументы
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Джанго | Отсутствующие позиционные аргументы
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Создайте скрипт bash, который вызывает скрипт Python, который принимает позиционные аргументы, именованные аргументы и ф
    Anonymous » » в форуме Python
    0 Ответы
    105 Просмотры
    Последнее сообщение Anonymous
  • Python argparse чередующиеся позиционные аргументы
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Python argparse чередующиеся позиционные аргументы
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»