Django如何使用User表创建M2M关系

时间:2015-01-25 14:42:56

标签: django many-to-many relation

我想与User表创建M2M关系,但它不起作用。

这是我的代码:

from django.contrib.auth.models import User
# Create your models here.

class projects(models.Model):

    project_name = models.CharField(verbose_name=" ", max_length=250, blank=True, null=True)
    description = models.CharField(verbose_name=" ", max_length=500, blank=True, null=True)
    create_date = models.DateField(verbose_name='', auto_now_add=True, null=True, blank=True,
        help_text="")
    start_date = models.DateField(verbose_name='', null=True, blank=True,
        help_text="")
    end_date   = models.DateField(verbose_name='', null=True, blank=True,help_text="")
    url = models.CharField(max_length=50)
    user = models.ManyToManyField('User')

    def __unicode__(self):
        return u"%s" % (self.project_name)

项目表应该有M2M和User表,但它会导致错误:

  

django.core.management.base.CommandError:一个或多个模型未验证:
  projects.projects:'用户'与模型User有一个m2m的关系,它没有安装或是抽象的。

我应该为这个案件解决什么问题?

2 个答案:

答案 0 :(得分:0)

您应该将auth应用名称添加到M2M字段定义:

user = models.ManyToManyField('auth.User')

或按原样使用User模型,而不将其放入引号:

user = models.ManyToManyField(User)

答案 1 :(得分:0)

使用"auth.User"或删除引号并使用您直接导入的用户对象。