我创建了一个公司模型和一个配置文件模型。
每个用户属于一个公司,一个公司可以属于多个用户。
两者中哪一个是正确的建模方式?
class Company(models.Model):
company_name = models.CharField(max_length=50)
company_code = models.CharField(max_length=40)
company_email = models.EmailField()
def save(self, *args, **kwargs):
if not self.company_code:
self.company_code = uuid.uuid1()
super(Company, self).save(*args, **kwargs)
现在 UserProfile 定义如下:
class UserProfile(models.Model):
# This field is required.
user = models.OneToOneField(User)
# Other fields here
company = models.ManyToManyField(Company)
# !!!! OR !!!!
company = models.ForeignKey(Company)
更新:
class UserProfile(models.Model):
user = models.OneToOneField(User)
company = models.ForeignKey(Company)
def create_user_profile(self, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
我现在已将此位添加到 UserProfile 类中,也添加AUTH_PROFILE_MODULE = 'MyApp.UserProfile'
到设置中。
当我执行 syncdb 时,我收到一条错误消息:
>> company = models.ForeignKey(Company)
NameError: name 'Company' is not defined