django新增模型类报错--跨应用新增多对多表报错--django如何跨应用新增多对多表

标题1、跨应用新增多对多表:

#当前应用dataCtrl,TSlide在当前应用,TAccount在user应用
from user.models import TAccount

class UserCollectSlide(models.Model):
    id = models.AutoField(primary_key = True)
    tslide = models.ForeignKey(to='TSlide',on_delete=models.CASCADE,db_constraint=False,related_name='collect')
    user = models.ForeignKey(to='TAccount',on_delete=models.CASCADE,db_constraint=False,related_name='collect')
    create_time = models.DateTimeField(auto_now_add=True)
    class Meta:
        managed = True
        db_table = 't_user_collect_slide'

标题2、报错内容:

SystemCheckError: System check identified some issues:

ERRORS:
dataCtrl.UserCollectSlide.account: (fields.E300) Field defines a relation with model 'TAccount', which is either not installed, or is abstract.
dataCtrl.UserCollectSlide.account: (fields.E307) The field dataCtrl.UserCollectSlide.account was declared with a lazy reference to 'dataCtrl.taccount', but app 'dataCtrl' doesn't provide model 'taccount'.

标题3、如何解决:

外键使用:app名.模型类名


当前应用在dataCtrl: TSlide在当前应用,TAccount在user应用中
#多对多关系表改为下面
class UserCollectSlide(models.Model):
    id = models.AutoField(primary_key = True)
    tslide = models.ForeignKey(to='TSlide',on_delete=models.CASCADE,db_constraint=False,related_name='collect')
    user = models.ForeignKey(to='user.TAccount',on_delete=models.CASCADE,db_constraint=False,related_name='collect')
    create_time = models.DateTimeField(auto_now_add=True)
    class Meta:
        managed = True
        db_table = 't_user_collect_slide'

猜你喜欢

转载自blog.csdn.net/weixin_46371752/article/details/129306684