Сбой ограничения NOT NULL: adminside_event.event_data - PullRequest
0 голосов
/ 22 октября 2019

У меня проблема с моим кодом: я пытаюсь отправить форму события в моделях. Но когда я запускаю форму, она покажет всю форму (и еще одна вещь, что она не будет отображать значения в окне выбора раундов), и когда я нажму на кнопку отправки, это будет с ошибкой. Пожалуйста, помогите мнеиз этого.

ПОСМОТРЕТЬ КОД СТОРОНЫ: -

def addevents(request):
    if request.method=="POST":
        name=request.POST['events']
        est=request.POST['starttime']
        eet=request.POST['endtime']
        s=Event()
        s.ename=name
        s.event_start_time=est
        s.event_end_time=eet
        s.save()
        cats = request.POST.getlist('cats')
        for i in cats:
            s.categories.add(Category.objects.get(id=i))
        s.save()

        roundd = request.POST.getlist('rround')
        for j in roundd:
            s.rounds.add(Round.objects.get(id=j))
        s.save()
        return render(request,'adminside/addevents.html')
    else:
        rounds = Round.objects.all()
        categories = Category.objects.all()
        return render(request,'adminside/addevents.html',{'categories':categories,'rounds':rounds})

СТОРОНА МОДЕЛИ: -

class Event(models.Model):
    ename=models.CharField(max_length=200)
    categories = models.ManyToManyField(Category)
    event_data = models.DateField()
    event_start_time = models.TimeField()
    event_end_time = models.TimeField()
    rounds = models.ManyToManyField(Round)

ФОРМА СТРАНИЦЫ СОБЫТИЙ: -

{% extends 'adminside/master.html' %}
{% block content %}
<div class="col-12">
        <div class="card">
          <div class="card-body">
            <h4 class="card-title">Events</h4>
            <p class="card-description"> All fields are Compulsory </p>
            <form class="forms-sample" method="POST">
              {% csrf_token %}
              <div class="form-group">
                <label for="exampleInputEmail1">Add Event</label>
                <input type="text" class="form-control" name="events" id="exampleInputEmail1" placeholder="Enter Event">
              </div>
              <div class="form-group">
                <label>Categories:</label>
                <select class="form-control" multiple name="cats">
                  {% for i in categories %}
                  <option value="{{ i.id }}">{{ i.cname }}</option>
                  {% endfor %}
                </select>
              </div>
              <div class="form-group">
                <label for="exampleInputEmail1">Event Start Time</label>
                <input type="text" class="form-control" name="starttime" id="exampleInputEmail1" placeholder="Enter Event Start Time">
              </div>
              <div class="form-group">
                <label for="exampleInputEmail1">Event End Time</label>
                <input type="text" class="form-control" name="endtime" id="exampleInputEmail1" placeholder="Enter Event End Time">
              </div>
              <div class="form-group">
                <label for="exampleInputEmail1">Round Name</label>
                <select class="form-control form-control-lg" id="exampleFormControlSelect1" multiple name="rround">
                    {% for i in rounds %}
                    <option value="{{i.id}}">{{i.round}}</option>
                    {% endfor %}
                      </select>
              </div>
              <button type="submit" value=Addme class="btn btn-success mr-2">Submit</button>
              <button class="btn btn-light">Cancel</button>
            </form>
          </div>
        </div>
      </div>
{% endblock %}

1 Ответ

0 голосов
/ 22 октября 2019

в представлении addevents необходимо добавить что-то в event_data перед сохранением, потому что это значение не принимает значение null или не изменяет ваши models.py

event_data = models.DateField()

, измените его на значение по умолчанию, например текущее время

event_data = models.DateField(default=timezone.now)

надеюсь, это поможет

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