django 类型错误:字段'amount'需要数字,但得到的是日期时间,日期时间(2022,3,27,10,46,51,801087,tzinfo=日期时间.timezone.utc)

6rvt4ljy  于 2022-12-05  发布在  Go
关注(0)|答案(3)|浏览(173)

我想我做错了什么,我需要删除它。但我不能修复它。我该怎么做呢?
我进行迁移时出现此错误

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

迁移文件中的0008_product_amount.py错误文件

# Generated by Django 4.0.3 on 2022-03-27 10:46

from django.db import migrations, models

class Migration(migrations.Migration):

dependencies = [
    ('product', '0007_remove_product_amount'),
 ]

operations = [
    migrations.AddField(
        model_name='product',
        name='amount',
        field=models.DateTimeField(blank=True, null=True),
    ),
]
ttcibm8c

ttcibm8c1#

删除数据库和所有迁移
并重试

ahy6op9u

ahy6op9u2#

转到您的迁移文件。在迁移文件中将field = models.ForeignKey(default = django.utils.timezone.now)更改为default = 1。再次运行迁移。这样应该可以修复错误。

qjp7pelc

qjp7pelc3#

1.进入迁移文件,查看与“金额”字段相关的迁移并将其删除。
1.使用“python manage.py makemigrations”命令运行迁移。此时,当您需要提供默认值时,请不要提供timezone.now;而是提供您想要的任何整数,因为金额字段需要整数值,而不是timezone.now。
1.您将看到迁移的更新,然后运行manage.py commigrate命令。
注意:如果你得到类似django.db.migrations.exceptions.InconsistentMigrationHistory的错误:迁移admin.0001_initial在其依赖项main_app.0001_initial应用于数据库'default'之前,只需运行以下命令:rm db.sqlite3删除数据库并重复“makemigrations-migrate”过程

相关问题