Я сталкиваюсь с django.db.migrations.exceptions.invalidbaseerror не может разрешить основания, когда я запускаю Python MPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я сталкиваюсь с django.db.migrations.exceptions.invalidbaseerror не может разрешить основания, когда я запускаю Python M

Сообщение Anonymous »

У меня есть два приложения, Coreapp и Product App. Поскольку все модели в приложении продукта имеют общие поля, я создал BaseModel в Coreapp, а затем унаследовал BaseModel в приложении моделей в продукте. Затем я запустил Python Manage.py Makemigrations и Python Manage.py Migrate. После этого я внес несколько изменений в моделях, я добавил Abstract = true в BaseModel и переименовал некоторые поля в моделях в приложении продукта. Затем я запустил Python Manage.py Makemigrations. Теперь, когда я запускаю Python Manage.py Migrate, я получаю следующую ошибку < /p>

Код: Выделить всё

django.db.migrations.exceptions.InvalidBasesError: Cannot resolve bases for [, , , ]
This can happen if you are inheriting models from an app with migrations (e.g.  contrib.auth)
in an app with no migrations;  see https://docs.djangoproject.com/en/4.1/topics/migrations/#dependencies for more
Ниже приведены две модели
coreapp/models.py

Код: Выделить всё

from django.db import models

# Create your models here.

class BaseModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
product/models.py

Код: Выделить всё

from django.db import models

from project_root.coreapp.models import BaseModel
# Create your models here.

class Attribute(BaseModel):
title = models.CharField(max_length=100)

def __str__(self):
return self.title

class AttributeValue(BaseModel):
title = models.CharField(max_length=100)
attribute_object = models.ForeignKey(Attribute,on_delete=models.CASCADE, related_name='attribute_values')

def __str__(self):
return self.title

class Category(BaseModel):
title = models.CharField(max_length=200)
parent= models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.title

class Product(BaseModel):
title = models.CharField(max_length=500)
price = models.FloatField()
qty = models.BigIntegerField()
sku = models.CharField(max_length=100)
detail= models.TextField(max_length=5000)
category_object = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='products')

def __str__(self):
return self.title
Когда я запустил Python Manage.py Makemigrations в первый раз я получил следующие файлы миграции.

Код: Выделить всё

from django.db import migrations, models

class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
migrations.CreateModel(
name='BaseModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
],
),
]
Продукт/migrations/0001_Initial.py

Код: Выделить всё

# Generated by Django 4.1 on 2023-10-15 05:59

from django.db import migrations, models
import django.db.models.deletion

class Migration(migrations.Migration):

initial = True

dependencies = [
('coreapp', '0001_initial'),
]

operations = [
migrations.CreateModel(
name='Attribute',
fields=[
('basemodel_ptr', models.OneToOneField(auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True, primary_key=True, serialize=False,
to='coreapp.basemodel')),
('title', models.CharField(max_length=100)),
],
bases=('coreapp.basemodel',),
),
migrations.CreateModel(
name='Category',
fields=[
('basemodel_ptr', models.OneToOneField(auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True, primary_key=True, serialize=False,
to='coreapp.basemodel')),
('title', models.CharField(max_length=200)),
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE,
to='product.category')),
],
bases=('coreapp.basemodel',),
),
migrations.CreateModel(
name='Product',
fields=[
('basemodel_ptr', models.OneToOneField(auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True, primary_key=True, serialize=False,
to='coreapp.basemodel')),
('title', models.CharField(max_length=500)),
('price', models.FloatField()),
('qty', models.BigIntegerField()),
('sku',  models.CharField(max_length=100)),
('detail', models.TextField(max_length=5000)),
('category_object', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
related_name='products', to='product.category')),
],
bases=('coreapp.basemodel',),
),
migrations.CreateModel(
name='AttributeValue',
fields=[
('basemodel_ptr', models.OneToOneField(auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True, primary_key=True, serialize=False,
to='coreapp.basemodel')),
('title', models.CharField(max_length=100)),
('attribute_object', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
related_name='attribute_values', to='product.attribute')),
],
bases=('coreapp.basemodel',),
),
]
print('product migration 1')
Затем я добавил Abstract = true в BaseModel и переименован в атрибут Fieild_object, чтобы атрибут в модели атрибута Value и Category_object в категорию в модели продукта. После этого я запустил Python Manage.py Makemigrations и получил следующие файлы миграции
coreapp/migrations/0002_delete_basemodel.py

Код: Выделить всё

# Generated by Django 4.1 on 2023-10-15 06:03

from django.db import migrations

class Migration(migrations.Migration):

dependencies = [
('product', '0002_rename_attribute_object_attributevalue_attribute_and_more'),
('coreapp', '0001_initial'),
]

operations = [
migrations.DeleteModel(
name='BaseModel',
),
]
продукта/migrations/0002_rename_attribute_object_attributevalue_attribute_and_more.py

Код: Выделить всё

# Generated by Django 4.1 on 2023-10-15 06:03

from django.db import migrations, models
import django.utils.timezone

class Migration(migrations.Migration):

dependencies = [
('product', '0001_initial'),
]

operations = [
migrations.RenameField(
model_name='attributevalue',
old_name='attribute_object',
new_name='attribute',
),
migrations.RenameField(
model_name='product',
old_name='category_object',
new_name='category',
),
migrations.RemoveField(
model_name='attribute',
name='basemodel_ptr',
),
migrations.RemoveField(
model_name='attributevalue',
name='basemodel_ptr',
),
migrations.RemoveField(
model_name='category',
name='basemodel_ptr',
),
migrations.RemoveField(
model_name='product',
name='basemodel_ptr',
),
migrations.AddField(
model_name='attribute',
name='created_at',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
),
migrations.AddField(
model_name='attribute',
name='id',
field=models.BigAutoField(auto_created=True, default=1, primary_key=True, serialize=False,
verbose_name='ID'),
preserve_default=False,
),
migrations.AddField(
model_name='attribute',
name='updated_at',
field=models.DateTimeField(auto_now=True),
),
migrations.AddField(
model_name='attributevalue',
name='created_at',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
),
migrations.AddField(
model_name='attributevalue',
name='id',
field=models.BigAutoField(auto_created=True, default=1, primary_key=True, serialize=False,
verbose_name='ID'),
preserve_default=False,
),
migrations.AddField(
model_name='attributevalue',
name='updated_at',
field=models.DateTimeField(auto_now=True),
),
migrations.AddField(
model_name='category',
name='created_at',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
),
migrations.AddField(
model_name='category',
name='id',
field=models.BigAutoField(auto_created=True, default=1, primary_key=True, serialize=False,
verbose_name='ID'),
preserve_default=False,
),
migrations.AddField(
model_name='category',
name='updated_at',
field=models.DateTimeField(auto_now=True),
),
migrations.AddField(
model_name='product',
name='created_at',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
),
migrations.AddField(
model_name='product',
name='id',
field=models.BigAutoField(auto_created=True, default=1, primary_key=True, serialize=False,
verbose_name='ID'),
preserve_default=False,
),
migrations.AddField(
model_name='product',
name='updated_at',
field=models.DateTimeField(auto_now=True),
),
]

print('product migration 2')
< /code>
Теперь, когда я запускаю Python Manage.py Migrate Я получаю ошибку < /p>
django.db.migrations.exceptions.InvalidBasesError: Cannot resolve bases for [, , , ]
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)
in an app with no migrations; see https://docs.djangoproject.com/en/4.1/topics/migrations/#dependencies for more
< /code>
Я пытался перенести приложение отдельно в другом порядке, например < /p>
python manage.py migrate product
python manage.py migrate coreapp
Я также пытался изменить порядок зависимостей в миграционных файлах
Но ни один из них не работал.
Как мне решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/773 ... esolve-bas
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Django.db.migrations.Exceptions.NodeNotFoundError: Зависимости Migrationaccounts.0001_initial ссылаются на несуществующи
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Django.db.migrations.Exceptions.NodeNotFoundError: Зависимости Migrationaccounts.0001_initial ссылаются на несуществующи
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Django Нет модуля с именем «django.db.migrations.migration».
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Django No модуль под названием «django.db.migrations.migration '
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Django: django.core.exceptions.synchronousonlyooperation во время работы скрещивания в Django
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»