Django Postgres makemigrations only Autofield at 0001_initial.py

Python 3.10.4 Django 4.0.5 PostgreSQL 14

Когда я запускаю "python manage.py makemigrations", я получаю файл "0001_initial.py", но все поля, кроме автополей, отсутствуют.

models.py

from django.db import models

# Create your models here.

class Username(models.Model):
    #id = models.AutoField(primary_key=True)
    username: models.CharField(max_length=100)

class Carrier(models.Model):
    #id = models.AutoField(primary_key=True)
    carriername: models.CharField(max_length=100)
    desc: models.TextField()

0001_initial.py

# Generated by Django 4.0.5 on 2022-06-29 13:18

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Carrier',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ],
        ),
        migrations.CreateModel(
            name='Username',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ],
        ),
    ]

Во-первых, вы должны знать, что Django По умолчанию добавляет поле id к моделям ... Попробуйте удалить файл миграции и вы должны использовать = , а не :. так что это будет выглядеть следующим образом

class Username(models.Model):
    username=models.CharField(max_length=100)

class Carrier(models.Model):
    carriername = models.CharField(max_length=100)
    desc =  models.TextField()

rerun manage.py makemigrations и он должен работать

Вернуться на верх