Выполните makemigration модели Django из пакета
У меня разная структура пакетов и я хочу запустить makemigration и затем мигрировать, но это не работает. у меня есть приложение user_app и пакет models, где находится файл моей пользовательской модели пользователя. когда я запускаю makemigration, у меня появляется следующее - > No changes detected in app 'user_app'. Что я могу сделать? это структура моего проекта
user.py
from django.db import models
from django.contrib.auth.models import AbstractUser, BaseUserManager
from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token
from django.core.exceptions import ValidationError
from user_app.const import STATUS_CHOICES
def validate_length(value):
if len(str(value)) != 11:
raise ValidationError(('Passport must be 11 digit!'))
class MyUserManager(BaseUserManager):
def create_user(self, email, last_name, first_name, passport_id, password=None):
if not email:
raise ValueError('Email is required')
elif not last_name:
raise ValueError('Last name is required')
elif not first_name:
raise ValueError('First name is required')
elif not passport_id:
raise ValueError('Passport is required')
user = self.model(
email=self.normalize_email(email),
last_name=last_name,
first_name=first_name,
passport_id=passport_id
)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, email, password):
user = self.model(
email=self.normalize_email(email),
)
user.set_password(password)
user.is_admin = True
user.is_staff = True
user.is_superuser = True
user.save(using=self._db)
return user
class User(AbstractUser):
email = models.EmailField(unique=True, verbose_name='Email', error_messages={'unique': 'This email already exists'})
first_name = models.CharField(max_length=20, verbose_name='First name')
last_name = models.CharField(max_length=25, verbose_name='Last name')
passport_id = models.BigIntegerField(validators=[validate_length], verbose_name='Passport')
status = models.CharField(max_length=20, choices=STATUS_CHOICES)
object = MyUserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
class Meta:
verbose_name = ('User')
def __str__(self):
return self.email
@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)