Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django models.py错误(关于ManyToManyField)_Django_Django Models_Django Orm - Fatal编程技术网

Django models.py错误(关于ManyToManyField)

Django 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

我写的代码,然后我给错误

所以我在互联网上搜索,发现我必须使用“related_name”属性

但我不知道为什么我必须使用attr


为什么??

通过为
用户
模型设置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='+'
功能,也无法禁用此功能。别问我为什么:)