Как связать страницы в зависимости от внешнего ключа с помощью django Я пробовал много способов, но ничего не получилось
Я пытался связать страны с континентами в зависимости от внешнего ключа "ckey" Я пытался использовать filter и .raw, но у меня ничего не получилось Я также пытался использовать его непосредственно в HTML, но он сказал, что не может похвалить его, мне нужно знать, есть ли другой способ связать страницы таким образом "континенты -> страны -> города -> .... и так далее, используя Django
".модели вот модели, которые я использовал, связанные с mysql
views.py. второй атрибут, используемый для тестирования проблемы во втором представлении
html код Я тестирую много способов, но этот - окончательный Странное сообщение, которое я получил, когда запустил код
Итак, вкратце, мне нужна помощь в том, как связать такие страницы, как, например, Europe > United kingdom > all cities under UK London ........ с помощью Django. Я знаю, как это сделать, в общем, все страны > все города, но не таким образом.
# Get list by Obj
continentObj = Continents.objects.get(ckey='as45914')
countryList = Country.objects.filter(ckey=cObj)
# Get List by Related Attribute
countryList = Country.objects.filter(ckey__ckey='as45914')
edit
@OP довольно часто вы будете использовать связанные атрибуты.
Предположим, у вас есть три модели
class Continents():
name = charfield
class Country():
continents = Key(Continents)
class City():
country = Key(Country)
Как получить все города Европы
list_Of_Cities = City.objects.filter(country__continents__name='Europe')
для вив
def countrylist(request):
list_Of_Cities = country.objects.filter(ckey__ckey='as45914').values('countryName')
context = {
"list_Of_Cities":list_Of_Cities
}
return render(request,"guide/countrylist.html",context=context)
и в HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{% for i in list_Of_Cities %}
{{i.countryName}}
{% endfor %}
</body>
</html>