Как добавить выпадающие поля отображения в Django - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь добавить поле категории в свою модель сообщений в блоге в Django. Когда я делаю сообщение с панелью администратора, он показывает варианты выбора в раскрывающемся списке, однако я использую sh для отображения вариантов в html.

Вот форма в моем HTML файле:

<div class="container">
    <div class="row">
        <div class="col-lg-7 offset-lg-1">
            <form class="create-form" method="POST" enctype="multipart/form-data">{% csrf_token %}

                <!-- title -->
                <div class="form-group">
                    <label for="id_title">Title</label>
                    <input class="form-control" type="text" name="title" id="id_title" placeholder="Title" required autofocus>
                </div>

                <!-- Body -->
                <div class="form-group">
                    <label for="id_body">Content</label>
                    <textarea class="form-control" rows="10" type="text" name="body" id="id_body" placeholder="Put the description of your post here..." required></textarea>
                </div>

        <div class="form-group">
          <label for="id_category">Category</label>
          <select class="form-control"  name="category" id="id_category" required></select>
        </div>

                <!-- Image -->
                <div class="form-group">
                    <label for="id_image">Image</label>
                    <input  type="file" name="image" id="id_image" accept="image/*" required>
                </div>

1 Ответ

0 голосов
/ 10 июля 2020

Я также задавал вопросы о 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 смог бы объяснить это максимально просто. Продолжайте учиться.

Удачи!

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