我正在尝试迁移这两种模式:
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
# Create your models here.
# Groups Model
class Cluster(models.Model):
grp_name = models.CharField(max_length=100)
grp_status = models.CharField(max_length=100)
grp_description = models.TextField()
created_on = models.DateTimeField(default=timezone.now)
created_by = models.ForeignKey(
User,
related_name='created',
on_delete=models.CASCADE
)
updated_on = models.DateTimeField(auto_now=True)
members = models.ManyToManyField(
User,
through='UserGroup',
through_fields=('user', 'group'),
related_name='members'
)
def __str__(self):
return self.grp_name
#user groups
class UserGroup(models.Model):
user = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name = 'user'
)
group = models.ForeignKey(
Cluster,
on_delete=models.CASCADE,
related_name = 'group'
)
date_joined = models.DateTimeField(default=timezone.now)但我有个错误:
ERRORS:
groups.Cluster.members: (fields.E339) 'UserGroup.group' is not a foreign key to 'User'.
HINT: Did you mean one of the following foreign keys to 'User': user?
groups.Cluster.members: (fields.E339) 'UserGroup.user' is not a foreign key to 'Cluster'.
HINT: Did you mean one of the following foreign keys to 'Cluster': group?我想在用户和组之间建立多到多的关系。也就是说,用户可以在多个组和组中拥有许多用户。为什么我的代码出错了?我该怎么解决呢?请帮帮忙。
发布于 2018-11-28 14:05:47
用户related_name参数:
created_by=models.ForeignKey(User, on_delete=models.CASCADE,related_name="created")https://stackoverflow.com/questions/53521143
复制相似问题