TypeError: Поле 'amount' ожидало число, но получило datetime.datetime(2022, 3, 27, 10, 46, 51, 801087, tzinfo=datetime.timezone.utc)
Я думаю, что я сделал что-то неправильно и мне нужно удалить его. но я не могу это исправить. Как я могу это сделать?
< File "C:\Users\HP\Desktop\venv\lib\site-packages\django\db\models\fields\__init__.py", line
1990, in get_prep_value
raise e.__class__(
TypeError: Field 'amount' expected a number but got datetime.datetime(2022, 3, 27, 10, 46,
51, 801087, tzinfo=datetime.timezone.utc).
(venv) C:\Users\HP\Desktop\markon>
models.py
class Product(models.Model):
name = models.CharField(max_length=100)
category = models.ForeignKey(Category, on_delete=models.DO_NOTHING)
images = models.ImageField(upload_to='product/%Y/%m/%d/')
detail = models.TextField()
keywords = models.CharField(max_length=50)
description = models.CharField(max_length=100)
price = models.FloatField()
sale = models.FloatField(blank=True, null=True)
amount = models.IntegerField(blank=True, null=True)
available = models.BooleanField(default=True)
date_created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
Удалите базу данных и все миграции
и попробуйте еще раз
Перейдите к вашему файлу миграций. Измените field = models.ForeignKey(default = django.utils.timezone.now) на default = 1 в файле миграций. Запустите миграции снова. Это должно исправить ошибку.
Зайдите в папку migrations, найдите миграцию, связанную с полем "amount" и удалите ее.
Запустите миграции с помощью команды "python manage.py makemigrations". На этот раз, когда от вас требуется указать значение по умолчанию в консоли, не указывайте 'timezone.now'; вместо этого укажите любое целое число по вашему выбору (например, 100), потому что поле amount ожидает целочисленное значение, а не 'timezone.now'
.затем запустите команду python manage.py migrate.
.
Примечание:если вы получаете ошибку типа django.db.migrations.exceptions.InconsistentMigrationHistory: Миграция admin.0001_initial была применена до ее зависимости main_app.0001_initial на базе данных 'default', просто выполните следующую команду: rm db.sqlite3 для удаления базы данных ;makemigrations (с помощью команды python manage.py makemigrations) и запустите миграции с помощью python manage.py migrate, как указано выше.