我有一个M2M关系的字段。当运行syncdb时,数据库上不会形成具有M2M字段的字段。 这是模型
class Eventgroups(models.Model):
event=models.ManyToManyField(Event)
group_name=models.CharField(max_length=100)
def __unicode__(self):
return "%s, %s" \
% (self.group_name, self.event)
class Meta:
db_table= 'eventgroup'
verbose_name_plural='eventgroups'
事件字段未在数据库上创建 我很感激能够洞察这个问题 问候, 约书亚
答案 0 :(得分:0)
一切都好。您只是不明白在SQL级别上如何实现ManyToMany。简单来说,这个
class Foo(models.Model):
#...
class Bar(models.Model):
foo = models.ManyToManyField(Foo)
在技术上与此相同:
class Foo(models.Model):
#...
class Bar(models.Model):
#...
class BarFoo(models.Model):
foo = models.ForeignKey(Foo)
bar = models.ForeignKey(Bar)
如果你要检查你的数据库 - 你会找到一个名为EventgroupsEvent的表或类似的包含实际字段的表。只有ORM才能让您直接连接模型。请read my answer here获取有关ManyToMany如何在后台运行的详细说明
答案 1 :(得分:0)
它不会创建一个名为event的字段,而是会创建一个新表 Eventgroups_event