Makemigrations игнорирование всех полей (DJANGO)
Как говорится в заголовке, есть проблема, которую я не могу решить, и это то, что когда я делаю миграции моего приложения admin_db, оно просто игнорирует все поля, хотя нет запятых и т.д. и синтаксис довольно чистый, хорошо, что я вставляю свой код... любая помощь была бы очень признательна. P.S Я использую MYSQL в качестве базы данных. Вот моя модель администратора, которую я хочу перенести
from django.db import models
from datetime import datetime
# Create your models here.
class Admin(models.Model):
Admin_Email: models.EmailField(primary_key=True, editable=False)
First_name: models.CharField(max_length=25)
Last_name: models.CharField(max_length=25)
Gender: models.CharField(max_length=1)
Date_of_registration: models.DateField(default=datetime.now, editable=False)
Date_of_Birth: models.DateField()
CNIC: models.BigIntegerField(max_length=13, unique=True)
City: models.CharField(max_length=50)
Area: models.CharField(max_length=50)
Address: models.CharField(max_length=100)
Phone_num: models.BigIntegerField(max_length=11, unique=True)
class Salt(models.Model):
Admin_email = models.OneToOneField(Admin, on_delete=models.CASCADE)
Salt = models.CharField(max_length=25, unique=True)
class Password(models.Model):
Admin_email = models.OneToOneField(Admin, on_delete=models.CASCADE)
hash = models.CharField(max_length=255, unique=True)
соответствующие миграции 0001_initial.py
# Generated by Django 3.2.8 on 2021-11-07 18:58
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Admin',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
],
),
migrations.CreateModel(
name='Salt',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('Salt', models.CharField(max_length=25, unique=True)),
('Admin_email', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='admin_db.admin')),
],
),
migrations.CreateModel(
name='Password',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('hash', models.CharField(max_length=255, unique=True)),
('Admin_email', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='admin_db.admin')),
],
),
]
Как хорошо видно, нет ни одного поля, перенесенного из моего models.py ПОЖАЛУЙСТА, ПОМОГИТЕ Спасибо
Синтаксис <field_name>: <type>
, используемый в вашем классе Admin
, называется type annotation и он не устанавливает фактические атрибуты, поэтому для установки фактических атрибутов используйте =
вместо :
, как в других классах.
class Admin(models.Model):
admin_Email = models.EmailField(primary_key=True, editable=False)
first_name = models.CharField(max_length=25)
last_name = models.CharField(max_length=25)
...
Обратите внимание, что snake_case является предпочтительным способом приведения атрибутов в регистр в классе.