Django中app的model相互引用问题

Posted Jason_WangYing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中app的model相互引用问题相关的知识,希望对你有一定的参考价值。

Django有俩个 app 

----------在 Course 的models.py中:

from Shopping.models import Coupon, OrderDetail

class Course:

  order_details = GenericRelation(to=OrderDetail)

  coupon = GenericRelation(to=Coupon)

-------------在Shopping的models.py中:

from Course.models import Account

class Coupon:

  account = models.ForeignKey(to=Account, verbose_name="拥有者", on_delete=None, related_name="coupons")

class OrderDetail:

        pass

 

报错:ImportError: cannot import name '***' from '*****'

原因:暂不清楚

解决方案使用app_name.class_name的方式,注意不是app_name.models.class_name

在 Course 的models.py中:

class Course:

  order_details = GenericRelation(to="Shopping.OrderDetail")

  coupon = GenericRelation(to="Shopping.Coupon")

在Shopping的models.py中:

class Coupon:

  account = models.ForeignKey(to="Course.Account", verbose_name="拥有者", on_delete=None, related_name="coupons")

class OrderDetail:

  pass


                

以上是关于Django中app的model相互引用问题的主要内容,如果未能解决你的问题,请参考以下文章

Django模型:两个类之间的相互引用以及在python中无法使用前向声明

Django,在 self 类中的多对多关系中,我如何在 ORM 方面相互引用?

Django打造在线教育平台_day_2:新建users app 编写models之完善

删除 2 个作为外键相互引用的模型不同对象

django models.py模块的外部引用

Django基础之数据库增删改查