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

前端之家收集整理的这篇文章主要介绍了python – Django双向ManyToMany – 如何防止在第二个模型上创建表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个模型,每个都有一个共享的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)

猜你在找的Python相关文章