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将数据插入manytomanyfield_Django - Fatal编程技术网

Django将数据插入manytomanyfield

Django将数据插入manytomanyfield,django,Django,我正在尝试使用post请求插入数据 我有一些关于数组的数据,因为它们有很多字段 但我在插入数据时遇到了以下错误 _setattr(self, prop, kwargs[prop]) File "/Users/soubhagyapradhan/Desktop/upwork/eligibility-checkr/backend/eligibility_env/lib/python3.8/site-packages/django/db/models/fields/related_

我正在尝试使用post请求插入数据 我有一些关于数组的数据,因为它们有很多字段 但我在插入数据时遇到了以下错误

    _setattr(self, prop, kwargs[prop])
  File "/Users/soubhagyapradhan/Desktop/upwork/eligibility-checkr/backend/eligibility_env/lib/python3.8/site-packages/django/db/models/fields/related_descriptors.py", line 536, in __set__
    raise TypeError(
TypeError: Direct assignment to the forward side of a many-to-many set is prohibited. Use groups.set() instead.
型号:

class Policy(TimeStampedModel):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, verbose_name=_('id'))
    hmo = models.ForeignKey(to=HMO, on_delete=models.CASCADE, verbose_name=_('hmo'))
    name = models.CharField(max_length=250, verbose_name=_('name'))
    number = models.CharField(max_length=250, verbose_name=_('number'), unique=True)
    organization = models.ForeignKey(to=Organization, on_delete=models.CASCADE, verbose_name=_('organization'))
    groups = models.ManyToManyField(to=Group, verbose_name=_('groups'))
    enrollee = models.ManyToManyField(to=Enrollee, verbose_name=_('enrollee'))
    start_date = models.DateField()
    end_date = models.DateField()
    commencement_date = models.DateField(null=True, blank=True)
视图:

我在post方法中发送的正文中的数据:

{
    "hmo" : "600d10ec-d5b8-449e-a521-dd986408ca98",
    "name" : "soubhagya",
    "number": "9853092550",
    "organization": "ab9f7b1d-51f3-460f-ba99-2b38d9c12682",
    "groups": ["340ba243-c692-4a09-b819-af1cf3986625"],
    "enrollee":["600d10ec-d5b8-449e-a521-dd986408ca98"],
    "start_date": "2020-10-10T00:00:00",
    "end_date": "2020-10-10T00:00:00"
}
模型


这些密钥“组”的发送值是什么?[“340ba243-c692-4a09-b819-af1cf3986625”],“加入者”:[“600d10ec-d5b8-449e-a521-dd986408ca98”],这些是ID uuid
{
    "hmo" : "600d10ec-d5b8-449e-a521-dd986408ca98",
    "name" : "soubhagya",
    "number": "9853092550",
    "organization": "ab9f7b1d-51f3-460f-ba99-2b38d9c12682",
    "groups": ["340ba243-c692-4a09-b819-af1cf3986625"],
    "enrollee":["600d10ec-d5b8-449e-a521-dd986408ca98"],
    "start_date": "2020-10-10T00:00:00",
    "end_date": "2020-10-10T00:00:00"
}
groups = models.ManyToManyField(to=Group,blank=True, verbose_name=_('groups'))
enrollee = models.ManyToManyField(to=Enrollee,blank=True, verbose_name=_('enrollee'))


def create(self, request):
    data       = request.data
    hmo        = data.get("hmo")
    name       = data.get("name")
    number     = data.get("number")
    organization = data.get("organization")
    groups     = data.getlist("groups")
    enrollee   = data.getlist("enrollee")
    start_date = data.get("start_date")
    end_date   = data.get("end_date")
    obj = models.Policy.objects.create(
    hmo_id=UUID(hmo),
    name=name,
    number=number,
    organization_id=UUID(organization),
    start_date=start_date,
    end_date=end_date
    )
    for group in groups:
        obj.groups.add(Group.objects.get(id=group)
    for enroll in enrollee:
        obj.enrollee.add(Enrollee.objects.get(id=enroll)
    obj.save()