Django: Не отображаются параметры атрибутов объекта запроса
Я впервые начал использовать django. При создании представления функции я хотел посмотреть, какие атрибуты есть у объекта запроса (метод и т.д.), и я ожидал, что VSC покажет все опции для request.option. Но объект запроса ничего не показывает.
Интересно, это что-то из конфигурации расширений для django, чтобы помочь с автозаполнением или показом опций, или это обычная вещь.
def index(request): print( request.) return HttpResponse("Hello, World!")
Я взял этот код в качестве примера того, что я хотел бы видеть, и я ожидал, что vsc покажет список опций для просмотра свойств объекта запроса:
def xyz(request): item1 = request.GET['item1'] user = request.user
Например, если я сделаю request.me
, то автозаполнение сделает что-то вроде этого о запросе класса:
def index(request): request.(self, *args, **kwargs): return super().(*args, **kwargs)
Конечно, мне это не нужно, но я хотел бы видеть опции и автозаполнение объекта запроса. Например, чтобы проверить, является ли запрос методом GET или POST.
Хотелось бы узнать, связано ли это с настройкой VSC при работе с django, или это нормальное поведение.
Я искал в разных местах, но не нашел ничего об этом. Я хотел бы знать, есть ли что-то в настройках vsc, что я должен решить, или это нормальное поведение.
Это связано с тем, что Django делает слишком много метапрограммирования, чтобы IDE могла его понять. Однако вы можете намекнуть на это с помощью:
from django.http import HttpRequest
def index(request: HttpRequest):
# …
pass
Большинство IDE поймут, что это объект HttpRequest
, и таким образом помогут с автокомплиментацией.
Но все же Python - очень динамичный язык, и промежуточное ПО может добавлять атрибуты динамически, поэтому автодополнение в Python не очень удобно. В таких IDE, как PyCharm, есть выпуски, в которые они "вливают" знания о Django, чтобы сделать его более эффективным, но это скорее "трюки", чем анализ мета-программирования.