Я также задавал вопросы о Django в StackOverflow. Однако очень сложно объяснить ваши вопросы опытным людям как новичку ie, поэтому я не только отвечу на ваш вопрос, но и хочу показать вам, как это сделать.
Я думаю, что есть несколько частей к вашему вопросу. Это не просто создание раскрывающегося списка с вариантами выбора в HTML, но также вы хотите передать данные из модели сообщений вашего блога в Django.
Во-первых, предположим, что имя HTML файл постов. html. В сообщениях. html создать раскрывающийся список в HTML выглядит так; (предположим, что ваши категории - ноль, один и два, и вы можете увидеть их в раскрывающемся списке на панели администратора)
<select name="post_categories" class="filter-selectbox">
<option value="zero">"Zero"</option>
<option value="one">"One"</option>
<option value="two">"Two"</option></select>
Однако, если вы хотите создать раскрывающийся список с использованием поля вашей модели, вам следует сделайте то же самое: (Я предполагал, что вы можете создать раскрывающийся список с полем вашей модели сообщения с именем category.)
<select name="post_categories" class="filter-selectbox">
{% for post in posts %}
<option value="{{ post.category }}">{{ post.category }}</option>
{% endfor %} </select>
Итак, теперь вы можете передать и использовать объект в HTML и может использовать свои поля. Однако я предполагал, что вы можете передавать объекты в шаблон. Если не знаете как, возникает еще один вопрос, как передать данные в файл HTML? Вам следует поискать больше о «передаче объектов в шаблон».
В views.py, когда вы визуализируете шаблон, вы можете передавать параметры или объекты, чтобы использовать их в вашем шаблоне. Пожалуйста, посмотрите на это: Django: Передача объекта из шаблона в представления
Итак, в вашем случае это должно быть примерно так:
def get_posts(request):
posts = Post.objects.all() # In this case, I assume that I can reach category as post.category in the template
context = {"posts": posts}
return render(request, "posts.html", context)
Надеюсь на newb ie в Django смог бы объяснить это максимально просто. Продолжайте учиться.
Удачи!