Création de table dans la base de données
# Django
# Migrations
Bonjour à tous !
Sans le faire exprès, j'ai effacé la tables ShippingAddress et tout le contenu de mon fichier models.py.
À l'intérieur du models.py, j'avais mon modèle Shopper et ma classe ShippingAddress.
J'ai réécrit le code à nouveau, mais je rencontre une KeyError lors de la migration pour recréer les tables
fields = self.models[model_key].fields
KeyError: ('accounts', 'shippingaddress')
class CustomUserManager(BaseUserManager):
def create_user(self, email, password, **kwargs):
if not email:
raise ValueError(" email is required")
email = self.normalize_email(email)
# on recupere notre model Shopper
user = self.model(email=email, **kwargs)
# on cripte le password
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password, **kwargs):
# on set les valeur sur notre dictionnaire
kwargs["is_staff"] = True
kwargs["is_superuser"] = True
kwargs["is_active"] = True
# on passe la dictionnaire a la fonction create_user
return self.create_user(email=email, password=password, **kwargs)
class Shopper(AbstractUser):
username = None
email = models.EmailField(max_length=240, unique=True)
USERNAME_FIELD = "email"
# d'autres champs requis en + de email
REQUIRED_FIELDS = []
objects = CustomUserManager()
class Shippingaddress(models.Model):
# user peut avoir plusieurs address
user = models.ForeignKey(Shopper, on_delete=models.CASCADE)
name = models.CharField(max_length=240)
address_1 = models.CharField(max_length=1024, help_text="numéro de rue adresse de voirie")
address_2 = models.CharField(max_length=1024, help_text="bâtiment, etage... ", blank=True)
city = models.CharField(max_length=1024)
zip_code = models.CharField(max_length=32)
country = models.CharField(max_length=2, choices=[(c.alpha2.lower(), c.name) for c in countries])
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte