加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Django双向ManyToMany – 如何防止在第二个模型上创建

发布时间:2020-12-16 23:07:44 所属栏目:Python 来源:网络整理
导读:我有两个模型,每个都有一个共享的ManyToMany,使用db_table字段.但是,如何防止syncdb尝试创建共享表,第二个模型? class Model1(models.Model): othermodels = ManyToManyField('Model2',db_table='model1_model2',related_name='model1_model2')class Model2
我有两个模型,每个都有一个共享的ManyToMany,使用db_table字段.但是,如何防止syncdb尝试创建共享表,第二个模型?
class Model1(models.Model):
    othermodels = ManyToManyField('Model2',db_table='model1_model2',related_name='model1_model2')

class Model2(models.model):
    othermodels = ManyToManyField('Model1',related_name='model2_model1')

它在我的开发环境中工作得很好,因为有些表格是零碎地创建出来的,因为我将其全部构建出来.但是从一个空数据库,syncdb throws:
_mysql_exceptions.OperationalError :((1050,“Table”model1_model2“已经存在”)

有没有一个标记,我从第二个模型的字段中丢失,以防止重复的表创建?还是我这样做完全错了?

解决方法

我也找到了这个解决方案,这对我来说是完美的:
class Test1(models.Model):
    tests2 = models.ManyToManyField('Test2',blank=True)

class Test2(models.Model):
    tests1 = models.ManyToManyField('Test1',through=Test1.tests2.through,blank=True)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读