شیرین
11 ماه پیش توسط شیرین مطرح شد
0 پاسخ

خطا در migrateکردن مدل customser

سلام من برای اینکه از لاگین با تلفن همراه استفاده کنم به مدل customuser فیلد اضافه کردم و managerبراش ساختم الان خطای 1091به من میده
دوم اینکه من میخوام کاربر هم بتونه باusername,password وارد بشه هم با موبایل و رمز یکبار مصرف الان بااین مدل باید برای phone هم uniqe=trueبکنم ؟ اگر کد بهتر هست ممنون برام بزارید

class CustomUser(AbstractUser):
    username = models.CharField(max_length=50, verbose_name='نام', blank=True, null=True, unique=True)
    email = models.EmailField()
    age = models.PositiveIntegerField(null=True, blank=True)
    phone = models.BigIntegerField(verbose_name='موبایل', blank=True, null=True)
    address = models.CharField(max_length=300, null=True, blank=True)
    profile_image = models.ImageField(upload_to='profile/', null=True, blank=True)
    postal_code = models.CharField(max_length=20, null=True, blank=True)
    create = models.DateTimeField(auto_now_add=True, verbose_name='تاریخ', blank=True, null=True, )
    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['phone', 'email']
    objects = CustomUserManager()

    class Meta:
        verbose_name = "کاربر"
        verbose_name_plural = "کاربران"

    def __str__(self):
        return self.username

class CustomUserManager(BaseUserManager):
    def create_user(self, email, username, phone, password):
        if not email:
            raise ValueError('plz input email')
        if not username:
            raise ValueError('plz input username')
        if not phone:
            raise ValueError('plz input phone')
        user = self.model(email=self.normalize_email(email), username='username', phone='phone')
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, email, username, phone, password, **other_fields):
        # user = self.create_user(email, username, phone, password)
        other_fields.setdefault('is_staff', True)
        other_fields.setdefault('is_active', True)
        other_fields.setdefault('is_superuser', True)
        if other_fields.get('is_staff') is not True:
            raise ValueError('Superuser muse have is_staff=True')
        if other_fields.get('is_superuser') is not True:
            raise ValueError('Superuser muse have is_superuser=True')
        return self.create_user(email, username, phone, password, **other_fields)
MySQLdb.OperationalError: (1091, "Can't DROP 'is_staff'; check that column/key exists")

ثبت پرسش جدید

به همدیگه کمک کنیم

به شیرین کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام