Итак, у Django сейчас сложилось впечатление, что мне не хватает позиционных аргументов, когда я собираю раздел справки для веб-сайта. Сюда входят справочные статьи, полученные из модели Django.
Все работает как положено, пока я не включу уникальный справочный номер справочной статьи в свой файлviews.py.
Сообщение об ошибке следующее:
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
Джанго | Отсутствующие позиционные аргументы ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение