如何在Django中实现ManyToManyField

时间:2013-08-16 11:23:20

标签: django-models

我正在尝试创建一个足球应用程序的小型django项目,以显示统计数据和东西..开始我在models.py中创建了两个类...有多对多关系..但由于某种原因,它抛出一个奇怪的数据库错误:没有这样的表:football_league_team 请提前感谢任何帮助。

from django.db import models

# Create your models here.

class Team(models.Model):
        team_name = models.CharField(max_length=30, unique=True)
        team_code = models.CharField(max_length=4, unique=True)
        team_home = models.CharField(max_length=30, unique=True)
        team_registry_date = models.DateTimeField('Date of Registry')

        def __unicode__(self):
            return self.team_name

class League(models.Model):
        league_name = models.CharField(max_length=30)
        league_code = models.CharField(max_length=4)
        league_division = models.IntegerField()
        team = models.ManyToManyField(Team)

        def __unicode__(self):
            return self.league_name

1 个答案:

答案 0 :(得分:1)

您删除了某个模型中的字段football_league_team。 Django不知道它,仍然期待着这个领域。根据您的Django版本,有几种方法可以重置相应的模型。


Django 1.4及以下

> ./manage.py reset <appname>

我相信它适用于早期版本的Django,但不确定。请记住,此选项将重置应用程序的每个模型,而不是允许单个表丢弃的以下方法。

Django 1.5及更高版本

> ./manage.py sqlclear <appname>

将打印出从应用程序模型中清除数据库的命令。

> ./manage.py dbshell

允许您使用 sqlclear 命令来删除想要重置的表格。