При добавлении комментария не отображается правильно дата и время его публикации, вместо нужной даты, просто пишется None. Поле даты коммента:
comment_date = models.DateTimeField('время', default = timezone.now, null = True)
Я знаю, что это происходит из-за null = True, но без него я получаю ошибку при добавлении комментария. Параметр default не работает, ранее я пробовал различные вариации timezone.now, но к успеху это не привело. Я думал, что дело стоит в миграциях, но нет, я делаю все миграции верно и это не помогает.
Прикладываю полный код: models.py
class Comment(models.Model): article = models.ForeignKey(Article, on_delete = models.CASCADE) # connecting 'Comment model' with 'Article model' by ForeignKey author_name = models.CharField('имя автора', max_length = 50) comment_text = models.CharField('текст комментария', max_length = 10000) comment_date = models.DateTimeField('время', default = timezone.now, null = True) def __str__(self): return self.author_name class Meta: verbose_name = 'Комментарий' verbose_name_plural = 'Комментарии'
Далее views.py:
def detail(request, article_id): try: a = Article.objects.get(id = article_id) except: raise Http404('Статья не найдена!') latest_comments_list = a.comment_set.order_by('-id')[:10] return render(request, 'articles/detail.html', {'article': a, 'latest_comments_list': latest_comments_list}) def leave_comment(request, article_id): try: a = Article.objects.get(id = article_id) except: raise Http404('Статья не найдена!') a.comment_set.create(author_name = request.POST.get('name'), comment_text = request.POST.get('text'), comment_date = request.POST.get('date')) return HttpResponseRedirect(reverse('articles:detail', args = (a.id,)))
urls.py:
urlpatterns = [ path('', views.index, name = 'index'), path('<int:article_id>/', views.detail, name = 'detail'), path('<int:article_id>/leave_comment/', views.leave_comment, name = 'leave_comment')
И html-код:
{% extends 'base.html' %} <!-->detail.html<--> {% block title %}{{article.article_title}}{% endblock %} {% block content %} <h2>{{article.article_title}}</h2> <p>{{article.article_text}}</p> <em>{{article.pub_date}}</em> {% if article.was_published_recently %} Новая статья! {% endif %} <hr> {% if latest_comments_list %} {% for c in latest_comments_list %} <p> <strong>{{c.author_name}}</strong> <p>{{c.comment_text}}</p> <strong>{{c.comment_date}}</strong> </p> {% endfor %} {% else %} Комментарии не найдены, станьте первым! {% endif %} <hr> <form action="{% url 'articles:leave_comment' article.id %}" method="POST"> {% csrf_token %} <input type="text" required placeholder="Ваше имя" name="name"><br> <textarea name="text" required="" placeholder="Текст комментария" cols="30" rows="10" width="100px" height="50px"></textarea><br> <strong name="date"></strong> <button type="submit">Оставить комментарий</button> </form> {% endblock %}
Очень прошу помощи, только начал изучение джанги как сразу в лужу такую сел!
P.S. да, я гуглил и лазил по stackoverflow, и, нет, мне ничего не помогло.