【发布时间】:2012-03-25 11:06:17
【问题描述】:
编程新手,这对我来说很困惑...我有 2 个模型。部门和跨职能项目。两个模型之间的关系创建了一个名为 Department_Crossfunctionalproject 的连接表。
我有另一个模型,叫做雇员。我想将员工添加到 Department_Crossfunctionalproject 表。我怎样才能做到这一点?
我一直在关注本教程:https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships。我不能在 DJANGO 创建的自动创建的 department_crossfunctionalproject 连接表上执行此操作吗?
我不断收到以下错误:
CommandError("One or more models did not validate:\n%s" % error_text)
django.core.management.base.CommandError: One or more models did not validate:
companydatabase.membership:"Department_crossfunctionalproject" has a relationship with model <class 'companydatabase.models.Department_crossfunctionalproject'>,
which has either not been installed or is abstract.
型号:
class Crossfunctionalproject(models.Model):
nameofproject = models.CharField(max_length=50)
def __unicode__(self):
return self.nameofproject
class Department(models.Model):
name = models.CharField(max_length=100)
project = models.ManyToManyField(Crossfunctionalproject, null=True, blank=True)
class Employee(models.Model):
employeenumber = models.CharField(max_length=50)
fname = models.CharField(max_length=50, verbose_name='First Name')
mname = models.CharField(max_length=50, null=True, blank=True, verbose_name='Middle Name')
lname = models.CharField(max_length=50, verbose_name='Last Name')
email = models.EmailField(null=True, blank=True, verbose_name='Email')
phone = models.CharField(max_length=50, null=True, blank=True, verbose_name='Phone')
title = models.CharField(max_length=50, null=True, blank=True, verbose_name='Position')
# db table created by DJANGO, I wrote out the model, trying to add extra columns*
class Department_crossfunctionalproject(models.Model):
department = models.ForeignKey(Department)
crossfunctionalproject = models.ForeignKey(Crossfunctonalproject)
membership = models.ManyToManyField(Employee, through="Membership")
class Membership(models.Model):
employee = models.ForeignKey(Employee)
department_crossfunctionalproject = models.ForeignKey(Department_crossfunctionalproject)
whytheyjoined = models.CharField(max_length=100)
【问题讨论】:
-
您在
Employee.title.verbose_name中有一个错误 -> 最后缺少'。 -
谢谢,将代码复制到这里时出错
标签: django join many-to-many field relationship