Django - TypeError: load_stations () отсутствует 1 обязательный позиционный аргумент: 'request'? - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь создать зависимые выпадающие списки, и при попытке компилирования я получил эту ошибку

File "C:\...\operations\urls.py", line 13, in <module>
    path('ajax/load-stations/', views.load_stations(), name='ajax_load_stations'),
TypeError: load_stations() missing 1 required positional argument: 'request'

Мой текущий код, связанный с этой частью,

views.py

class EnterExitArea(CreateView):
    template_name = "operations/enter_exit_area.html"
    form_class = WarehouseForm
    success_url = reverse_lazy('enter_exit_area')

    def form_valid(self, form):
        form.submit_time()
        return super().form_valid(form)


def load_stations(request):
    work_area_id = request.GET.get('work_area')
    stations = StationNumber.objects.filter(work_area_id=work_area_id).order_by('name')
    return render(request, 'operations/station_number_dropdown_list_options.html', {'stations': stations})

и мои URL-адреса

urls.py

urlpatterns = [
    url(r'enter-exit-area/$', EnterExitArea.as_view(), name='enter_exit_area'),
    path('ajax/load-stations/', views.load_stations(), name='ajax_load_stations'),
]

Что может быть причиной этой ошибки?

1 Ответ

2 голосов
/ 08 октября 2019

Вы используете представления на основе функций неправильно.

Эта строка: path('ajax/load-stations/', views.load_stations(), name='ajax_load_stations'),

должна быть

path('ajax/load-stations/', views.load_stations, name='ajax_load_stations'),

Поскольку вы не включаете скобки для вызова представления на основе функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...