Django калькулятор дат

Это приложение должно принимать дату от пользователя, хранить ее в базе данных, затем отсчитывать 9 дней после нее и показывать эти 10 дней в списке, мне удалось сделать два представления одно для подсчета 10 дней и показа их в списке. Другое представление должно принимать день от пользователя и хранить его в базе данных, теперь я хочу соединить оба представления, чтобы в конце процесса пользователь выбирал дату, а приложение автоматически сохраняло дату, подсчитывало их и возвращало список.

Модели:

from django.db import models
from django.db.models.fields import DateField
from datetime import datetime
from django.db.models import CharField, Model


# Create your models here
class Event(models.Model):
    title = models.CharField(max_length=40)
    start = models.DateTimeField(auto_now=False, auto_now_add=False, null=True, blank=True)
    end = models.DateTimeField(auto_now=False, auto_now_add=False, null=True, blank=True)

    def __unicode__(self):
        return self.title
        
class PeriodDate(models.Model):
    per_date = models.CharField(max_length=15)

serializer:

from dataclasses import fields
from rest_framework import serializers
from .models import PeriodDate

class PeriodDateSerializer(serializers.ModelSerializer):
    class Meta:
        model = PeriodDate
        fields = '__all__'

URLs:

from django.urls import path
from django.urls.resolvers import URLPattern
from . import views

urlpatterns = [
    path('CalendarCount', views.CalendarCount, name= 'index' ),
    path('form', views.form),
  

]

Просмотров:

@api_view(['GET'])
def CalendarCount(request):
    #Taking date
    Slected_date = PeriodDate.objects.all()
    #Change data type from Str into Date
    First_date= datetime.strptime(Slected_date,'%Y-%m-%d')
    #Making a list to store dates after the for loop
    dd = []
    #A loop to count 9 days after the First_date
    for i in range(9):
        a_date = (First_date + timedelta(days = i))
        #changing Date form to show the day only
        a_date = a_date.strftime('%d')
        #store results into the dd list
        dd.append(a_date)
        #str(dd.append(d1 + timedelta(days=i)))
    return Response(dd)

@api_view(['POST'])
def form(request):
    serlializer = PeriodDateSerializer(data=request.data)
    if serlializer.is_valid():
        serlializer.save()
    return  Response(serlializer.data)
Вернуться на верх