usman imtiaz
usman imtiaz

Reputation: 714

Add date and time manully in django

I want to add date and time manually for required task but when i add date & time and submit it show error of null field.

Model.py

from django.contrib.auth.models import User
from django.db import models

class TaskList(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    task = models.CharField(max_length=100, null=False, blank=False)
    complete = models.BooleanField(default=False)
    datetimepicker1 = models.DateTimeField(auto_now_add=False)

View.py

def post(self, request):
    if SESSION_KEY in self.request.session:
        try:
            data = self.request.POST.get
            task_list = TaskList(
                user_id=request.session[SESSION_KEY],
                task=data('task'),
                datetimepicker1=data('datetimepicker1')
            )
            task_list.save()
            return redirect('todolist')
        except Exception as e:
            return HttpResponse('failed {}'.format(e), 500)

Template

  <form method="post">
            {% csrf_token %}
                <label for="task">
                    <input name="task" placeholder="add today's task" id="task" required>
                </label>
              <div class="input-group date" id="datetimepicker1" data-target-input="nearest">
                  <label for="datetimepicker1">
                        <input class="form-control datetimepicker-input" data-target="#datetimepicker1" type="text" id="datetimepicker1" required>
                  </label>
                <div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker">
                  <div class="input-group-text"><i class="fa fa-calendar"></i></div>
                </div>
            </div>
            <button type="submit">add</button>
        </form>

Upvotes: 1

Views: 1032

Answers (1)

Max
Max

Reputation: 876

try this:

import datetime
def post(self, request):
    datetimepicker1 = request.POST.get('datetimepicker1')
    datetimepicker1 = datetime.datetime.strptime(datetimepicker1,'%Y-%m-%d')
    if SESSION_KEY in self.request.session:
        try:
            data = self.request.POST.get
            task_list = TaskList(
                .....
                datetimepicker1 = datetimepicker1
            )
            ......
            return HttpResponse('failed {}'.format(e), 500)

change datetimepicker1 to datetime

Upvotes: 1

Related Questions