Hi friend, plz check these files: ' # Generated by Django 2.2.3 on 2019-11-26 15:36 ' and another (if u have), to see separating.
On Tue, Nov 26, 2019, 23:44 Ahmad Saki <[email protected]> wrote: > Hello Dear, > Please explain with more words. How do I solve this problem? What can I do? > > On Tuesday, November 26, 2019 at 9:54:26 PM UTC+6, Integr@te System wrote: >> >> Hi man, >> >> And u see error occur again, isn't it? >> Do you differ two file that app output when you migrated? >> >> On Tue, Nov 26, 2019, 22:40 Ahmad Saki <[email protected]> wrote: >> >>> organization.Organization model: >>> >>> from django.db import models >>> >>> class Organization(models.Model): >>> orgid = models.IntegerField(max_length=6, primary_key=True) >>> name = models.CharField(max_length=50) >>> phone = models.CharField(max_length=20,null=True,blank=True,default= >>> None) >>> email = models.CharField(max_length=50,null=True,blank=True,default= >>> None) >>> mobile = models.CharField(max_length=20,null=True,blank=True,default= >>> None) >>> permanent_address = models.CharField(max_length=200,null=True,blank= >>> True,default=None) >>> present_address = models.CharField(max_length=200,null=True,blank= >>> True,default=None) >>> remark = models.CharField(max_length=500,null=True,blank=True,default >>> =None) >>> >>> And migration: >>> >>> # Generated by Django 2.2.3 on 2019-11-26 15:36 >>> >>> from django.db import migrations, models >>> >>> >>> class Migration(migrations.Migration): >>> >>> initial = True >>> >>> dependencies = [ >>> ] >>> >>> operations = [ >>> migrations.CreateModel( >>> name='Organization', >>> fields=[ >>> ('orgid', models.IntegerField(max_length=6, primary_key= >>> True, serialize=False)), >>> ('name', models.CharField(max_length=50)), >>> ('phone', models.CharField(blank=True, default=None, >>> max_length=20, null=True)), >>> ('email', models.CharField(blank=True, default=None, >>> max_length=50, null=True)), >>> ('mobile', models.CharField(blank=True, default=None, >>> max_length=20, null=True)), >>> ('permanent_address', models.CharField(blank=True, >>> default=None, max_length=200, null=True)), >>> ('present_address', models.CharField(blank=True, default= >>> None, max_length=200, null=True)), >>> ('remark', models.CharField(blank=True, default=None, >>> max_length=500, null=True)), >>> ], >>> ), >>> ] >>> >>> >>> >>> >>> On Tuesday, November 26, 2019 at 8:26:13 PM UTC+6, Integr@te System >>> wrote: >>>> >>>> hi, inspect your typo and Organization model. >>>> >>>> On Tue, Nov 26, 2019, 16:31 Ahmad Saki <[email protected]> wrote: >>>> >>>>> Dear, >>>>> Thanks for your response. >>>>> I use the foreign key field 'orgid' or not but got the same error. If >>>>> I want to use this then where is my fault for this error! >>>>> >>>>> >>>>> On Tuesday, November 26, 2019 at 12:11:58 PM UTC+6, Integr@te System >>>>> wrote: >>>>>> >>>>>> Hi man, >>>>>> >>>>>> Check 'class UserManager(): ......orgid = org_obj ' >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Tue, Nov 26, 2019, 01:40 Ahmad Saki <[email protected]> wrote: >>>>>> >>>>>>> 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 [email protected]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/django-users/7f038f19-7430-4d4b-8dc3-efad352d7bc8%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/django-users/7f038f19-7430-4d4b-8dc3-efad352d7bc8%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>>>> 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 [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/django-users/2c8f88c6-5021-4113-84ee-ac0d53001e1a%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/django-users/2c8f88c6-5021-4113-84ee-ac0d53001e1a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>> 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 [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/django-users/84f02bae-7119-4066-a3d3-3dfc8b8c5973%40googlegroups.com >>> <https://groups.google.com/d/msgid/django-users/84f02bae-7119-4066-a3d3-3dfc8b8c5973%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/1c7a93a2-7eb8-4b9d-9928-aa14f86065a8%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/1c7a93a2-7eb8-4b9d-9928-aa14f86065a8%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAP5HUWr6knGupSA5T1PMGbS4nu4_enxXHsoK-nOct4rH9EaN3A%40mail.gmail.com.

