My custom authentication model in django: from django.db import models from django.contrib.auth.models import ( AbstractBaseUser, BaseUserManager ) from organization.models import Organization
class UserManager(BaseUserManager): # use_in_migrations = True # python manage.py createsuperuser def create_user(self, orgid, username, email, password=None, is_admin=False, is_staff=False, is_active=True): if not orgid: raise ValueError("Organization of user must not empty") elif not username: raise ValueError("User must have an username") elif not email: raise ValueError("User must have an email address") org_obj = Organization.objects.all(orgid=orgid) user_obj = self.model( orgid=org_obj, username=username, email = self.normalize_email(email), password=password ) user_obj.set_password(password) user_obj.admin=is_admin user_obj.staff=is_staff user_obj.active=is_active user_obj.save(using=self._db) return user_obj # python manage.py createsuperuser def create_superuser(self, orgid, username, email, password=None): user = self.create_user(orgid,username,email,password=password,is_admin=True,is_staff=True,is_active=True) return user def create_staffuser(self, orgid, username, email, password=None): user = self.create_user(orgid,username,email,password=password,is_admin=False,is_staff=True,is_active=True) return user class User(AbstractBaseUser): orgid = models.ForeignKey(Organization, max_length=6, on_delete=models.CASCADE) username = models.CharField(primary_key=True, max_length=50) email = models.EmailField(max_length=255, unique=True, null=False, blank=False) admin = models.BooleanField(default=False) staff = models.BooleanField(default=False) active = models.BooleanField(default=True) date_joined = models.DateTimeField(auto_now_add=True) objects = UserManager() USERNAME_FIELD = "username" # REQUIRED_FIELDS must contain all required fields on your User model, # but should not contain the USERNAME_FIELD or password as these fields will always be prompted for. REQUIRED_FIELDS = ['orgid','email'] class Meta: app_label = "user" db_table = "user" def __str__(self): return self.username def get_full_name(self): return self.username def get_short_name(self): return self.username # this methods are require to login super user from admin panel def has_perm(self, perm, obj=None): return self.is_staff # this methods are require to login super user from admin panel def has_module_perms(self, app_label): return self.is_staff @property def is_admin(self): return self.admin @property def is_staff(self): return self.staff @property def is_active(self): return self.active When I create migrations it creates: from django.db import migrations, models import django.db.models.deletion import user.models class Migration(migrations.Migration): initial = True dependencies = [ ('organization', '0001_initial'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('username', models.CharField(max_length=50, primary_key=True, serialize=False)), ('email', models.EmailField(max_length=255, unique=True)), ('admin', models.BooleanField(default=False)), ('staff', models.BooleanField(default=False)), ('active', models.BooleanField(default=True)), ('date_joined', models.DateTimeField(auto_now_add=True)), ('orgid', models.ForeignKey(max_length=6, on_delete=django.db.models.deletion.CASCADE, to='organization.Organization')), ], options={ 'db_table': 'user', }, managers=[ ('objects', user.models.UserManager()), ], ), ] But when I want to migrate it gives me an error below. Please help me anyone.. Operations to perform: Apply all migrations: admin, auth, contenttypes, organization, sessions, user Running migrations: Applying admin.0004_auto_20191118_2315...Traceback (most recent call last): File "manage.py", line 21, in <module> main() File "manage.py", line 17, in main execute_from_command_line(sys.argv) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line utility.execute() File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\__init__.py", line 375, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv self.execute(*args, **cmd_options) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\base.py", line 364, in execute output = self.handle(*args, **options) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\base.py", line 83, in wrapped res = handle_func(*args, **kwargs) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\commands\migrate.py", line 234, in handle fake_initial=fake_initial, File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\migrations\executor.py", line 117, in migrate state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\migrations\executor.py", line 147, in _migrate_all_forwards state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\migrations\executor.py", line 245, in apply_migration state = migration.apply(state, schema_editor) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\migrations\migration.py", line 124, in apply operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\migrations\operations\fields.py", line 249, in database_forwards schema_editor.alter_field(from_model, from_field, to_field) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\base\schema.py", line 507, in alter_field new_db_params = new_field.db_parameters(connection=self.connection) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\fields\related.py", line 966, in db_parameters return {"type": self.db_type(connection), "check": self.db_check(connection)} File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\fields\related.py", line 963, in db_type return self.target_field.rel_db_type(connection=connection) File "C:\Users\ZAB-SAKI\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\fields\related.py", line 878, in target_field return self.foreign_related_fields[0] IndexError: tuple index out of range -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/7f038f19-7430-4d4b-8dc3-efad352d7bc8%40googlegroups.com.