Как я могу отобразить представление из предопределенного списка / dict, а не из идентификатора базы данных, в django?

#python #django #django-models #django-views #django-templates

#питон #джанго #django-модели #django-просмотры #django-шаблоны

Вопрос:

Мне любопытно, могу ли я отобразить представление непосредственно из списка (или словаря) в Django вместо модели и, таким образом, программно генерировать страницы на основе соответствующего шаблона (здесь, my_template.html ). Я делал это много раз после создания модели, в которой <str:my_list> она ссылалась бы на соответствующую базу данных. Однако в случае использования, который включает вызов API, я бы предпочел не идти по маршруту базы данных, поскольку это становится несколько избыточным. Я уверен, что это должно быть возможно, но я, кажется, хожу кругами, пытаясь это осуществить.

urls.py

 # ...

urlpatterns = [
    # ...
    path('path/<str:my_list>', views.my_view, name='my_view'),
]
 

views.py

 # ...

def my_view(request, my_list):
    return render(request, 'core/my_template.html')
 

Список может быть чем-то таким же простым, как:

 my_list = [
    item_1,
    item_2,
    # ...
]
 

Спасибо!

Комментарии:

1. Вы взглянули на контексты? Я думаю, вы можете легко передавать аргументы в виде списков и dicts в контексте шаблону. docs.djangoproject.com/en/3.1/ref/templates/api

2. Абсолютно. Но я не просто пытаюсь передать значение из контекста в шаблон, а скорее визуализирую само представление из списка.

Ответ №1:

Я полагаю, что шаблон ищет словарь. В шаблоне вы ссылаетесь на имя словаря и ключ (я полагаю, что я использую правильные термины). Если бы я хотел получить доступ

 my_list = {
   {'item_1':'cat'},
   {'item_2':'dog'},
   {'item_3':' el chupacabra'}
}
 

Мне нужно было бы передать свой список в качестве контекста и ссылки в шаблоне как:

 {{ my_list.item_1 }}
{{ my_list.item_2 }}
{{ my_list.item_3 }}
 

Тем не менее, вы должны иметь возможность передавать:

 return render(request, 'core/my_template.html', {'item_1':'cat},{'item_2':'dog},{'item_3':' el chupacabra'})
 

и иметь возможность получить ссылку только на ключ в шаблоне следующим образом:

 {{ item_1 }}
 

Я все еще относительно новичок в этом, но это два способа, с помощью которых я смог получить информацию для своих шаблонов.

Комментарии:

1. Спасибо за попытку ответа, но вопрос в том, как создавать страницы из одного шаблона, используя список вместо вызова идентификатора из базы данных, а не как передать значение в шаблон.