0

我正在建立一个带有数字下载的ecomerse站点来做到这一点我需要在产品模型中添加一个字段我知道夹层允许注入附加字段但是当我运行模式迁移时它添加了第一个字段然后挂起并且不添加另一个字段是否有人对为什么会发生这种情况有任何想法,这是我在下面的额外模型部分。

EXTRA_MODEL_FIELDS = (
    (
        "cartridge.shop.models.Order.callback_uuid",
        "django.db.models.CharField",
        (),
        {"blank" : False, "max_length" : 36, "default": ""},
    ),
    (
        "cartridge.shop.models.Product.download_file",
        "django.db.models.FileField",
        (),
        { "blank" : True, "upload_to" : "downloads", },
    ),
)

所以只是为了清楚我正在运行的命令是python manage.py schemamigration cartridge.shop --auto --stdout > content/migrations/0001_cartridge_shop_add_download_file.py

它说添加了字段 callback_uuid 但这已经存在所以它很好然后它挂起并且不添加download_file.

任何帮助,将不胜感激。

4

1 回答 1

0

这个问题的答案是为属性添加一个默认值,它不适用于 none 类型,但如果你传递一个空字符串,它就可以正常工作。

EXTRA_MODEL_FIELDS = (
    (
        "cartridge.shop.models.Order.callback_uuid",
        "django.db.models.CharField",
        (),
        {"blank" : False, "max_length" : 36, "default": ""},
    ),
    (
        "cartridge.shop.models.Product.download_file",
        "django.db.models.FileField",
        (),
        { "blank" : True, "default" : "" , "upload_to" : "downloads", },
    ),
)
于 2014-07-30T19:36:21.303 回答