Это правильное использование для Django ModelForm - PullRequest
0 голосов
/ 29 июня 2019

мой вопрос;Я использую ModelForm вместо форм. Form и я хочу организовать форму в html-файле вместо файла forms.py (я не хочу использовать тег attr , потому что мой файл form.html очень сложный) Правильно ли это использование?

forms.py

 class CommentForm(forms.ModelForm):
    class Meta:
        model=Comment
        fields=[
            'name',
            'email',
            'comment',
        ]

html файл

<form class="post-comment-form" method="POST">
      {% csrf_token %}
      {% if form.errors %}
          {% for error in form.non_field_errors %}
              {{ error }}
          {% endfor %}
  {% endif %}

<div class="form-row">              
  <div class="form-item half blue">
    <label for="id_name"  class="rl-label" >Name</label>
    {{ form.name}}
  </div>

  <div class="form-item half blue">
    <label for="id_email" class="rl-label" >Email</label>
    {{ form.email}}
  </div>              
</div>

<div class="form-row">             
  <div class="form-item blue">
    <label for="id_comment"  class="rl-label">Comment</label>
    {{ form.comment }}
  </div>
</div>

<button type="submit" class="save-button">Submit</button>

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Если вы не хотите использовать {{form}}, вам необходимо указать поле ввода для полей каждой модели, например <input type="text" name = "name">. Например,

 <div class="form-row">              
      <div class="form-item half blue">
        <label for="id_name"  class="rl-label" >Name</label>
        **<input type="text" name = "name">**
      </div>

      <div class="form-item half blue">
        <label for="id_email" class="rl-label" >Email</label>
        <input type="text" name = "email">
      </div>              
    </div>

    <div class="form-row">             
      <div class="form-item blue">
        <label for="id_comment"  class="rl-label">Comment</label>
        <input type="text" name = "comment">
      </div>
    </div>

    <button type="submit" class="save-button">Submit</button>
0 голосов
/ 29 июня 2019

В html вы можете получить что-то вроде этого

{% csrf_token %}
{{ form.as_p }}

, а затем приступайте к стилизации или, что еще лучше, вы можете использовать {% crispy %}, что, на мой взгляд, прекрасно, исходя из того, что вы хотите заархивировать, ваш файл forms.py выглядит нормально.

...