У меня ошибка, во время попытки сохранить данные в базе данные не сохраняются, на момент заполнения данных кажется, что он сохранил данные, но этого не происходит, потому что каждое поле проверяется, и когда я его отправляю, ошибка не появляется, это представление, основанное на классе.
from django.shortcuts import render, redirect
from django.views.generic import View
from .models import Comment
from .forms import CommentForm
class IndexView(View):
model = Comment
template_name = 'home/index.html'
form_class = CommentForm
def get_queryset(self):
return self.model.objects.all().order_by('-pk')
def get_context_data(self, **kwargs):
context = {}
context['commentaries'] = self.get_queryset()
context['form'] = self.form_class
return context
def get(self, request, *args, **kwargs):
return render(request, self.template_name, self.get_context_data())
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
if form.is_valid():
form.save()
form.errors.as_json()
return redirect('home:index')
и это форма
from django import forms
from django.urls import reverse_lazy
from .models import Comment
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ['name', 'comment']
labels = {
'name': 'Nombre',
'comment': 'Comentario'
}
widgets = {
'name': forms.TextInput(
attrs={
'class': 'form-control',
'placeholder': 'Ingrese su Nombre',
'id': 'name',
}
),
'comment': forms.Textarea(
attrs={
'class': 'form-control',
'placeholder': 'Ingrese su comentario',
'id': 'comment',
}
)
}
Это модель
from django.db import models
class Comment(models.Model):
name = models.CharField(max_length=50)
comment = models.TextField(max_length=250)
created_at = models.DateField(auto_now=True)
def __str__(self):
return self.name
def save(self):
self.name = self.name.capitalize()
это html
<form method="POST">
{% csrf_token %}
<div class="form-group">
<div>{{ form.name.label }}</div>
<div>{{ form.name }}</div>
</div>
<div class="form-group">
<div>{{ form.comment.label }}</div>
<div>{{ form.comment }}</div>
</div>
<button type="submit" class="btn btn-primary">Enviar Comentario</button>
</form>
Я уже пытался поставить form.errors.as_ json (), чтобы узнать, что это за ошибка, но ничего не возвращает