Миграция django приводит к ошибке формата даты

Пытаюсь выполнить миграцию, используя следующее

models.py

from django.db import models
from django.utils.text import slugify
from django.utils import timezone
# Create your models here.

CATEGORY_CHOICES = (
    ('action','ACTION'),
    ('drama','DRAMA'),
    ('comedy','COMEDY'),
    ('romance','ROMANCE'),
)

LANGUAGE_CHOICES = (
    ('english' , 'ENGLISH'),
    ('german' , 'GERMAN'),
)

STATUS_CHOICES = (
    ('RA' , 'RECRNTLY ADDED'),
    ('MW' , 'MOST WATCHED'),
    ('TR' , 'TOP RATED'),
)

class Movie(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField(max_length=1000)
    image = models.ImageField(upload_to='movies')
    banner = models.ImageField(upload_to='movies_banner')
    category = models.CharField(choices=CATEGORY_CHOICES , max_length=10)
    language = models.CharField(choices=LANGUAGE_CHOICES , max_length=10)
    status = models.CharField(choices=STATUS_CHOICES , max_length=2)
    cast = models.CharField(max_length=100)
    year_of_production = models.DateField()
    views_count = models.IntegerField(default=0)
    movie_trailer = models.URLField()

    created = models.DateTimeField(default=timezone.now)

    slug = models.SlugField(blank=True, null=True)

    def save(self , *args , **kwargs):
        if not self.slug :
            self.slug = slugify(self.title)
        super(Movie , self).save( *args , **kwargs)

    def __str__(self):
        return self.title


LINK_CHOICES = (
    ('D' , 'DOWNLOAD LINK'),
    ('W' , 'WATCH LINK'),
)


class MovieLinks(models.Model):
    movie = models.ForeignKey(Movie, related_name='movie_watch_link', on_delete=models.CASCADE)
    type = models.CharField(choices=LINK_CHOICES , max_length=1)
    link = models.URLField()

    def __str__(self):
        return str(self.movie)

views.py

from django.shortcuts import render
from django.views.generic import ListView, DetailView
from django.views.generic.dates import YearArchiveView
from .models import Movie, MovieLinks


# Create your views here.
class HomeView(ListView):
    model = Movie
    template_name = 'movie/home.html'

    def get_context_data(self, **kwargs):
        context = super(HomeView, self).get_context_data(**kwargs)
        context['top_rated'] = Movie.objects.filter(status='TR')
        context['most_watched'] = Movie.objects.filter(status='MW')
        context['recently_added'] = Movie.objects.filter(status='RA')
        return context


class MovieList(ListView):
    model = Movie
    paginate_by = 2


class MovieDetail(DetailView):
    model = Movie

    def get_object(self):
        object = super(MovieDetail, self).get_object()
        object.views_count += 1
        object.save()
        return object

    def get_context_data(self, **kwargs):
        context = super(MovieDetail, self).get_context_data(**kwargs)
        context['links'] = MovieLinks.objects.filter(movie=self.get_object())
        context['related_movies'] = Movie.objects.filter(category=self.get_object().category)
        print(context)
        return context


class MovieCategory(ListView):
    model = Movie
    paginate_by = 2

    def get_queryset(self):
        self.category = self.kwargs['category']
        return Movie.objects.filter(category=self.category)

    def get_context_data(self, **kwargs):
        context = super(MovieCategory, self).get_context_data(**kwargs)
        context['movie_category'] = self.category
        return context


class MovieLanguage(ListView):
    model = Movie
    paginate_by = 2

    def get_queryset(self):
        self.laungage = self.kwargs['lang']
        return Movie.objects.filter(category=self.language)

    def get_context_data(self, **kwargs):
        context = super(MovieLanguage, self).get_context_data(**kwargs)
        context['movie_language'] = self.language
        return context


class MovieSearch(ListView):
    model = Movie
    paginate_by = 2

    def get_queryset(self):
        query = self.request.GET.get('query')
        if query:
            object_list = self.model.objects.filter(title__icontains=query)

        else:
            object_list = self.model.objects.none()
        return object_list


class MovieYear(YearArchiveView):
    queryset = Movie.objects.all()
    date_field = 'year_of_production'
    make_object_list = True
    allow_future = True

Выход :

django.core.exceptions.ValidationError: ['“” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format.']

Полный выход :

Нашли решения здесь

[u"" Значение имеет неправильный формат. Оно должно быть в формате YYYY-MM-DD HH:MM[:ss[.uuuuuuuuu]][TZ]."]

Все, что было в разделе миграций, должно быть удалено и created = models.DateTimeField(default=timezone.now) нужно было установить значение blank=True

Просто измените созданное поле на timezone.now неправильно, замените его на timezone.now()

created = models.DateTimeField(default=timezone.now())

и после

python manage.py makemigrations
python manage.py migrate
Вернуться на верх