Hi friend, When I want to create my custom authentication model User. I have got error such as 'FieldDoesNotExist 'userid''. So, I have deleted all of these previous migration_files, re-create database and makemigrations. But cannot able to migrate again.
On Wednesday, November 27, 2019 at 12:05:24 AM UTC+6, Integr@te System wrote: > > 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] <javascript:>> > 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] <javascript:>. >> 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/d0684d23-aa0a-4c98-b1cc-e0150ed22651%40googlegroups.com.

