Откуда 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})
Короткий ответ:
workers
иspeciality
должны иметь разные имена.workers
иspeciality
должны быть определены в одном контекстном словаре.
Можно попробовать что-то вроде этого:
return render(request, template_name="home.html", context={'users': workers, 'user_specialities': speciality})