JETH 2019-10-18 15:42 采纳率: 0%
浏览 768

关于Django执行迁移文件时,ForeignKey里面加on_delete=models.CASCADE报错问题,谁知道时怎么回事?万分感谢!!

Django 在创建模型类后,执行一下代码迁移文件时,在ForeignKey里面不加on_delete=models.CASCADE会报错,加了后,其他又外键的模型类不报错,就这个报错。

class GoodsType(BaseModel):
    """商品类型模型类"""
    name = models.CharField(max_length=20, verbose_name="种类名称")
    logo = models.CharField(max_length=20, verbose_name="标识")
    image = models.ImageField(upload_to="type", verbose_name="商品类型图片")

    class Mete:
        db_table = "df_goods_type"
        verbose_name = "商品种类"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name


class GoodsSKU(BaseModel):
    """商品SKU模型类"""
    status_choices = (
        (0, "下线"),
        (1, "上线"),
    )
    type = models.ForeignKey("GoodsType", on_delete=models.CASCADE, verbose_name="商品种类")
    goods = models.ForeignKey("Goods", on_delete=models.CASCADE, verbose_name="商品SPU")
    name = models.CharField(max_length=20, verbose_name="商品名称")
    desc = models.CharField(max_length=256, verbose_name="商品简介")
    price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="商品价格")
    unite = models.CharField(max_length=20, verbose_name="商品单位")
    image = models.ImageField(upload_to='goods', verbose_name="商品图片")
    stock = models.IntegerField(default=1, verbose_name="商品库存")
    sales = models.IntegerField(default=0, verbose_name="商品销量")
    status = models.SmallIntegerField(default=1, choices=status_choices,verbose_name="商品状态")

    class Meta:
        db_table = "df_goods_sku"
        verbose_name = "商品"
        verbose_name_plural = verbose_name

class GoodImage(models):
    """商品图片模型类"""
    sku = models.ForeignKey("GoodsSKU", on_delete=models.CASCADE, verbose_name="商品")
    image = models.ImageField(upload_to="good", verbose_name="图片路径")

    class Meta:
        db_table = "df_goods_image"
        verbose_name = "商品图片"
        verbose_name_plural = verbose_name

报错

python manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/home/u/.virtualenvs/dailyfresh/lib/python3.5/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/home/u/.virtualenvs/dailyfresh/lib/python3.5/site-packages/django/core/management/__init__.py", line 357, in execute
    django.setup()
  File "/home/u/.virtualenvs/dailyfresh/lib/python3.5/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/u/.virtualenvs/dailyfresh/lib/python3.5/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "/home/u/.virtualenvs/dailyfresh/lib/python3.5/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/home/u/jeth/dailyfresh/apps/goods/models.py", line 56, in <module>
    class GoodImage(models):
TypeError: module.__init__() takes at most 2 arguments (3 given)

  • 写回答

1条回答

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog