Откуда django REST API наследует 'users'?

Я создал API с определенными параметрами и передал его в URL моего django со следующим примером...

def home(request):
    response = requests.get('http://127.0.0.1:8000/api/workers/')
    workers = response.json()
    return render(request, "home.html", {'users': workers})
    pass

Откуда он наследует "пользователей"?

Мой API не содержит ничего связанного с этим, и я хотел бы добавить второй API поверх такого, как :

return render(request, "home.html", {'users': workers}, {'users': speciality})

не будет работать потому что users уже унаследовано.

Похоже, проблема в том, что вы дважды задаете контекст для "пользователей". Когда вы устанавливаете контекст, думайте об этом как о "прозвище". Сначала вы даете workers ник users. А затем кажется, что вы также пытаетесь дать specialty, прозвище users.

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

Оригинальный код:

  workers = response.json()
  # Context: refer to workers as “users” in the template. 
  return render(request, "home.html", {'users': workers})

Желаемый код:

# Context: refer to works as “users” in the template. Also refer to speciality as “users in the template.
return render(request, "home.html", {'users': workers}, {'users': speciality})


Кроме того, ознакомьтесь с документацией Django по render():


render(request, template_name, context=None, content_type=None, status=None, using=None)


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


return render(request, "home.html", {'users': workers}, {'users': speciality})


Короткий ответ:

  1. workers и speciality должны иметь разные имена.
  2. workers и speciality должны быть определены в одном контекстном словаре.

Можно попробовать что-то вроде этого:


return render(request, template_name="home.html", context={'users': workers, 'user_specialities': speciality})


Вернуться на верх