Объекты модели не имеют первичного ключа

К сожалению, я не могу избавиться от проблемы, обнаруженной в коде: Я создал новую модель, чтобы различать заказы на продажу и заказы на покупку. Проблема в том, что при создании объекта никак не распознается первичный ключ. Через раздел администратора я создаю объект, но если я пытаюсь нажать на него, он не распознается, и я не могу его удалить. Через Robo 3T я заметил, что по сравнению с заказами первой модели, вторая модель имеет на одно поле меньше, то, которое связано с id. Модели, о которых идет речь, практически идентичны, но одна работает, другая нет.

models.py

from django.db import models
from django.contrib.auth.models import User
from django.conf import settings
from django.utils import timezone


class Profile(models.Model):
    user_profile=models.ForeignKey(User,on_delete=models.CASCADE)
    btc=models.IntegerField(default=5)
    usd=models.IntegerField(default=100000)
    initial_balance=models.IntegerField()

class Order(models.Model):
    profile=models.ForeignKey(User,on_delete=models.CASCADE)
    datetime=models.DateTimeField(default=timezone.now())
    price=models.FloatField()
    quantity=models.FloatField()

class SellOrder(models.Model):
    buyer_profile=models.ForeignKey(User,on_delete=models.CASCADE)
    buyer_datetime=models.DateTimeField(default=timezone.now())
    buyer_price=models.FloatField()
    buyer_quantity=models.FloatField()

views.py

Возможно, я ошибаюсь, но. В начале создания моделей моего Django проекта я очень часто сталкиваюсь с миграциями... Поскольку первичные ключи должны создаваться Django автоматически, я предлагаю вам сначала проверить в ваших миграциях, созданы ли поля['id']. Вот пример того, как это должно выглядеть

migrations.CreateModel(
            name='Post',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200, unique=True)),
                ('content', models.TextField()),
            ],
        ),

Если поле отсутствует, вы можете повторно запустить миграции и надеяться, что оно будет добавлено, или просто написать недостающую строку самостоятельно

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