Django models.py错误(关于ManyToManyField)
我写的代码,然后我给错误 所以我在互联网上搜索,发现我必须使用“related_name”属性 但我不知道为什么我必须使用attrDjango models.py错误(关于ManyToManyField),django,django-models,django-orm,Django,Django Models,Django Orm,我写的代码,然后我给错误 所以我在互联网上搜索,发现我必须使用“related_name”属性 但我不知道为什么我必须使用attr 为什么??通过为用户模型设置M2M,用户实例将在其上设置自动工作日记录集属性。由于您需要2个访问器,django抱怨说,因为它无法设置workdailyrecord\u set两次 如果他们允许的话,这将是非常令人困惑的,因为谁知道在这种情况下,user.workdailyrecord\u set将返回什么 您需要给它一个值,以区分指向用户的两个关系 from dj
为什么??通过为
用户
模型设置M2M,用户
实例将在其上设置自动工作日记录集
属性。由于您需要2个访问器,django抱怨说,因为它无法设置workdailyrecord\u set
两次
如果他们允许的话,这将是非常令人困惑的,因为谁知道在这种情况下,user.workdailyrecord\u set
将返回什么
您需要给它一个值,以区分指向用户的两个关系
from django.db import models
from django.contrib.auth.models import User
class WorkDailyRecord(models.Model):
user = models.ForeignKey(User)
date = models.DateTimeField(auto_now=True)
contents = models.TextField()
check_user = models.ManyToManyField(User)
target_user = models.ManyToManyField(User)
ONGOING_OR_END =(
('ing', '진행중'),
('end', '완료'),
)
ongoing_or_end = models.CharField(
max_length=3,
choices=ONGOING_OR_END,
default='ing',
)
这样,User
实例将有一个workdailyrecord\u目标
反向管理器,该管理器将只查询与target\u用户
关系相关的workdailyrecord
对象
e、 g
target_user = models.ManyToManyField(User, related_name='workdailyrecord_target')
check_user = models.ManyToManyField(User, related_name='workdailyrecord_check')
不幸的是,对于M2Ms,即使使用django有文档记录的related_name='+'
功能,也无法禁用此功能。不要问我为什么:)通过为用户
模型设置M2M,用户
实例将在其上设置自动工作日记录集
属性。由于您需要2个访问器,django抱怨说,因为它无法设置workdailyrecord\u set
两次
如果他们允许的话,这将是非常令人困惑的,因为谁知道在这种情况下,user.workdailyrecord\u set
将返回什么
您需要给它一个值,以区分指向用户的两个关系
from django.db import models
from django.contrib.auth.models import User
class WorkDailyRecord(models.Model):
user = models.ForeignKey(User)
date = models.DateTimeField(auto_now=True)
contents = models.TextField()
check_user = models.ManyToManyField(User)
target_user = models.ManyToManyField(User)
ONGOING_OR_END =(
('ing', '진행중'),
('end', '완료'),
)
ongoing_or_end = models.CharField(
max_length=3,
choices=ONGOING_OR_END,
default='ing',
)
这样,User
实例将有一个workdailyrecord\u目标
反向管理器,该管理器将只查询与target\u用户
关系相关的workdailyrecord
对象
e、 g
target_user = models.ManyToManyField(User, related_name='workdailyrecord_target')
check_user = models.ManyToManyField(User, related_name='workdailyrecord_check')
不幸的是,对于M2Ms,即使使用django有文档记录的related_name='+'
功能,也无法禁用此功能。别问我为什么:)