Django adds a new model class error--adds a many-to-many table error across applications--how does django add a many-to-many table across applications

Title 1. Add many-to-many tables across applications:

#当前应用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'

Title 2. Error content:

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'.

Title 3, how to solve:

外键使用: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'

Guess you like

Origin blog.csdn.net/weixin_46371752/article/details/129306684