Résolue

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 !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.