私の e コマース サイトには、3 つのモデルを定義する models.py があります。Product
最初はとの 2 つしか定義されていませんでしCategory
たが、商品に特定のキーワードをタグ付けできるようにする必要があることに気付き、そのモデルを追加しました。私がしようとしたときに問題が発生しsyncdb
、新しいtag
テーブルが作成されましたが、products_tags
「スルー」テーブルは作成されませんでした。
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
ただし、クラスで確立された ManyToMany 関係のために、作成することを期待するテーブルは作成されませんProduct
。products_categories
「スルー」テーブルが正常に作成されるのに、テーブルが作成されないのはなぜproducts_tags
ですか?