Не отправляются сообщения в базу данных
Когда я пытаюсь отправить сообщение на временный адрес электронной почты, оно приходит туда, но не попадает в базу данных django.
view.py
def about(req):
form = MessangeForm()
if req.method == "POST":
form = MessangeForm(req.POST)
if form.is_valid():
subject = form.cleaned_data.get('title')
body = form.cleaned_data.get('body')
try:
send_mail(subject, body,settings.EMAIL_HOST_USER, ["nakkosikni@gufum.com"], fail_silently=False)
form.save()
except Exception as err:
print(str(err))
return redirect('index')
return render(req, "about.html", {"form": form})
models.py
``` class Messange(models.Model):
title = models.CharField(verbose_name='Subject', max_length=250, null=True, blank=True )
body = models.TextField(verbose_name='Body')
def __str__(self):
return f'(self.body)'
forms.py
class MessangeForm(ModelForm):
class Meta:
model = Messange
fields = ["title", "body"]
widgets = {
"body": forms.Textarea(attrs={'class': 'form-control'}),
}
When I click on submit button I get this error.
[07/Dec/2022 21:20:12] "GET /about HTTP/1.1" 200 2332 ERROR: wrong syntax for time type: "rtjyfukugil" LINE 1: ..._messange" ("title", "body") VALUES ('hjdfhjehf', 'rtjyfukug...
I don't understand what needs to be changed there.
Исключение DataError
, показанное на изображении, является исключением django database exception. Причина ошибки в данном случае не связана с какими-либо проблемами в показанном коде, а скорее с изменением модели перед запуском миграции базы данных. Поле body
класса Mesange
было изменено с даты на CharField
, но миграции не были запущены, что и привело к ошибке. База данных просто искала дату и/или время, но получала CharField
.
Решением было просто запустить
python manage.py makemigrations
python manage.py migrate