Проблема с отсутствующим «запросом» в функции django - PullRequest
0 голосов
/ 21 мая 2019

У меня есть небольшой вопрос об атрибуте запроса в моей функции, расположенной в файле python (не мой взгляд):

def my_function(model, request):
    instance = model.objects.filter(application=request.cur_app, display=True).order_by('order')
    return instance

В этом же файле я вызываю свою функцию следующим образом:

for element in my_function(my_model):
     ... do something ...

Но я получаю эту проблему:

my_function() missing 1 required positional argument: 'request'

Я не понимаю, как я могу решить эту проблему, потому что, если я добавлю 'request' в свой цикл, я получу:

name 'request' is not defined

Спасибо!

Обновление:

У меня есть файл middleware.py, который содержит:

class MultiSiteMiddleware:

    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        request.cur_app = WebApplication.objects.get_current(request)
        return self.get_response(request)

И этоэто промежуточное ПО, которое я хочу получить в своем файле menu.py в этой функции:

def list_of_edition():
    """ Return list of editions
    :return queryset
    """
    instance = NavbarMenuSettings.objects.filter(application=MultiSiteMiddleware, display=True).order_by('order')
    return instance

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

базовый вид функции django 1-й позиционный аргумент - запрос,

def funtionbaseview (запрос, arg1, arg2)

0 голосов
/ 21 мая 2019

Когда вы запускаете эту функцию

my_function

, вы должны указать модель с двумя параметрами и запрос

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