Создание объекта с помощью ModelForm не отображается в списке - PullRequest
0 голосов
/ 17 июня 2019

Я создал модель и просто пытаюсь сохранить детали с помощью ModelForm в бэкэнде, но я не могу это сделать, так как всякий раз, когда я пытаюсь отправить свою форму, она всегда показывает другую часть моего views.py, которая является -> Пожалуйста, попробуйте еще раз.

Если кто-то знает, что я делаю неправильно, пожалуйста, дайте мне знать.

P.S -> У меня есть два метода формы в моем templates.html, но я сейчас не написал никакого кода для этого, просто сейчас пытаюсь сохранить первый.

Я пытался решить эту проблему, пытаясь найти ответы на некоторые вопросы, но безуспешно.

models.py

class OrgMember(models.Model):
    org_poc = models.CharField(max_length=100, blank=False, verbose_name="Organization POC")
    org_name = models.CharField(max_length=100, blank=False, verbose_name="Organisation Name")
    phone = models.CharField(max_length=10, blank=False, verbose_name="Phone Number")
    email = models.EmailField(blank=False, unique=True, verbose_name="Email ID")

    def __str__(self):
        return self.email

forms.py

class OrgMembersForm(forms.ModelForm):
    class Meta:
        model = OrgMember
        fields = ['org_poc', 'org_name', 'phone', 'email']

views.py

def org_member_view(request):
    if request.method == "POST":
        form = OrgMembersForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, "Member Added Successfully.")
            return redirect('users-members')
        else:
            messages.error(request, "Please Try Again.")
    else:
        form = OrgMembersForm()
    members = OrgMember.objects.all()
    context = {'form': form, 'members': members}
    return render(request, 'users/members.html', context)

template.html

Таблица, в которой я хочу мои данные

  <table class="table table-responsive">
            <thead>
              <tr>
                <th>#</th>
                <th class="th-lg">Organization POC</th>
                <th class="th-lg">Organization Name</th>
                <th class="th-lg">Phone</th>
                <th class="th-lg">Email</th>
              </tr>
            </thead>
            <tbody>
              {% for member in members %}
              <tr>

                <th scope="row">{{ forloop.counter }}</th>
                <td>{{ member.org_poc }}</td>
                <td>{{ member.org_name }}</td>
                <!--              <td>Table cell</td>-->
                <td>{{ member.phone }}</td>
                <td>{{ member.email }}</td>

              </tr>
              {% endfor %}
            </tbody>
          </table>

Форма метода

<form method="POST" action="" enctype="multipart/form-data">
      {% csrf_token %}
      <div class="card">

        <div class="card-body">
          <!--Header -->
          <!--Body -->
          <div class="md-form">
            <i class="fas fa-user prefix grey-text"></i>
            <input type="text" id="form-name" class="form-control">
            <label for="form-name">Organization POC</label>
          </div>
          <div class="md-form">
            <i class="fas fa-user prefix grey-text"></i>
            <input type="text" id="form-name" class="form-control">
            <label for="form-name">Organization Name </label>
          </div>
          <div class="md-form">
            <i class="fas fa-user prefix grey-text"></i>
            <input type="text" id="form-name" class="form-control">
            <label for="form-name">Phone</label>
          </div>

          <div class="md-form">
            <i class="fas fa-envelope prefix grey-text"></i>
            <input type="text" id="form-email" class="form-control">
            <label for="form-email">Email </label>
          </div>
        </div>
      </div>
      <!--Form with header -->

      <!-- Footer -->
      <div class="modal-footer justify-content-center">
        <button type="submit" class="btn btn-success">Submit <i class="far fa-gem ml-1"></i></button>
        <a type="button" class="btn btn-outline-success waves-effect" data-dismiss="modal">Cancel</a>
      </div>
    </form>

1 Ответ

1 голос
/ 17 июня 2019

Ваша форма недействительна при отправке, но вы никогда не выводите сообщения об ошибках или вывод журнала.

Проверьте документацию о том, как выводить сообщения об ошибках внутри формы в шаблоне: https://docs.djangoproject.com/en/2.2/topics/forms/#rendering-fields-manually

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

import logging
log = logging.getLogger(__name__)

# .... further down
    else:
        messages.error(request, "Please Try Again.")
        log.error("form is invalid: %s", form.errors)

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

...