Bom dia Alura,
Eu estou fazendo todos os exercícios usando o banco MySQL invés Postgres, pois o meu interesse é Python com MySQL. Até o momento estava funcionando bem todos os exercícios, mas quando chegou neste exercício 04 (Formulario de receita), falhou. Alterei o arquivo 'Models.py' na classe 'Receita' substituído Pessoa para User. A falha ocorreu no terminal quando executei "python manage.py migrate". Sei que o banco de dados Mysql não é o solicitado pelo curso, até estou tentando resolver, mas se tiver como me ajudar, agradeço.
Pfavor, veja abaixo.
python manage.py migrate
System check identified some issues:
WARNINGS:
?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/4.1/ref/databases/#mysql-sql-mode
'django.db.utils.IntegrityError: (1452, '1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`alura_receita`.`#sql-96d8_4e`, CONSTRAINT `receitas_receita_pessoa_id_a8898e91_fk_auth_user_id` FOREIGN KEY (`pessoa_id`) REFERENCES `auth_user` (`id`))', '23000') '
Arquivo alterado models.py
from datetime import datetime
from django.db import models
# from pessoas.models import Pessoa
from django.contrib.auth.models import User
class Receita(models.Model):
# pessoa = models.ForeignKey(Pessoa, on_delete=models.CASCADE)
pessoa = models.ForeignKey(User, on_delete=models.CASCADE)
nome_receita = models.CharField(max_length=200)
ingridientes = models.TextField()
modo_preparo = models.TextField()
tempo_preparo = models.IntegerField()
rendimento = models.CharField(max_length=100)
categoria = models.CharField(max_length=100)
date_receita = models.DateTimeField(default=datetime.now, blank=True)
foto_receita = models.ImageField ( upload_to = 'fotos/%d/%m/%Y/' , blank = True )
publicada = models.BooleanField(default=False)
def __str__(self):
return self.nome_receita