Hi friend,

check again docs to see what benefit for u:
https://realpython.com/django-migrations-a-primer/#ensuring-model-definitions-and-the-database-schema-in-sync

Auth customizing:
https://docs.djangoproject.com/en/2.2/topics/auth/customizing/


On Wed, Nov 27, 2019, 12:34 Raja Sekar Sambath <[email protected]> wrote:

> Hi,
>
> If you have deleted your old db and creating a fresh database, then delete
> all files generated previously using migration command and do migration
>
> (have a backup before deleting files) ;)
>
> On Tue, 26 Nov 2019 at 23:57, Ahmad Saki <[email protected]>
> wrote:
>
>> 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]> 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/d0684d23-aa0a-4c98-b1cc-e0150ed22651%40googlegroups.com
>> <https://groups.google.com/d/msgid/django-users/d0684d23-aa0a-4c98-b1cc-e0150ed22651%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> --
> Thanks & Regards,
>
> Raja Sekar Sampath
> +91 9087434567.
>
> --
> 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/CAAS5AE6S%3D%2BxpExoR9GP%3D5frKKQ73LKBCUHVvdqTuiDSiTWzvtQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CAAS5AE6S%3D%2BxpExoR9GP%3D5frKKQ73LKBCUHVvdqTuiDSiTWzvtQ%40mail.gmail.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/CAP5HUWqeqUbjLOvjR1AxmzMA-vJ0yKy1JfH440uO%2BqQQ67a%2Bqg%40mail.gmail.com.

Reply via email to