gpt4 book ai didi

mysql - Django ManyToManyField 无法创建 "through"表

转载 作者:行者123 更新时间:2023-11-29 00:32:56 25 4
gpt4 key购买 nike

我的电子商务网站有一个 models.py,它定义了 3 个模型。最初,它只定义了两个,ProductCategory,但我意识到我需要能够用某些关键字标记我的产品,所以我添加了该模型。当我尝试 syncdb 并且创建了新的 tag 表而不是 products_tags 'through' 表时,问题出现了。

class Category(models.Model):
**a bunch of variables**

class Meta:
db_table = 'categories'
ordering = ['name']
verbose_name_plural = 'Categories'

def __unicode__(self):
return self.name

@models.permalink
def get_absolute_url(self):
return ('catalog_category', (), { 'category_slug': self.slug })

class Tag(models.Model):
**a bunch of variables**

class Meta:
db_table = 'tags'
ordering = ['name']
verbose_name_plural = 'Tags'

def __unicode__(self):
return self.name

class Product(models.Model):
**a bunch of variables**
categories = models.ManyToManyField(Category, related_name='cat+')
tags = models.ManyToManyField(Tag, related_name='tag+')

class Meta:
db_table = 'products'
ordering = ['-created_at']

def __unicode__(self):
return self.name

这一切都得到了很好的验证,当我运行 python manage.py syncdb 时,所有表都使用适当的行和类型以及您期望的所有其他内容创建。除此之外,它不会创建您希望它创建的 products_tags 表,因为在 Product 类中建立了 ManyToMany 关系。为什么它成功创建了 products_categories“through”表而不是 products_tags 表?

最佳答案

正如 Aamir 在他的评论中所说,syncdb 没有迁移功能,这就是没有创建新的直通表的原因。我安装了 django south,现在更新表完全按预期进行。

关于mysql - Django ManyToManyField 无法创建 "through"表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15694111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com