Django get_or_create和ManytoManyField

SAF*_*R N 6 python django

我以前用的是ForeignKey.

模型

class Phone_request_list(models.Model):
    who = models.IntegerField(null=True)
    whose = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)

视图

def phone_request(request):
    user_id = request.user.id
    uuid = request.GET.get('uuid')
    profile_id = profiles.objects.get(uuid=uuid).user_id
    p,created = Phone_request_list.objects.get_or_create(who=user_id,whose_id=profile_id)
    p.save()
Run Code Online (Sandbox Code Playgroud)

但现在我想将我的模型改为多个领域

class Phone_request_list(models.Model):
    who = models.IntegerField(null=True)
    whose = models.ManyToManyField(User) 
Run Code Online (Sandbox Code Playgroud)

这个时候我怎么能检查whosewhoget_or_create.请帮我.

Ada*_*nce 5

def phone_request(request):
    user_id = request.user.id
    uuid = request.GET.get('uuid')
    profile_id = profiles.objects.get(uuid=uuid).user_id
    p,created = Photo_request_list.objects.get_or_create(who=user_id)
    p.whose.add(profiles.objects.get(uuid=uuid))
    p.save()
Run Code Online (Sandbox Code Playgroud)

顺便说一句,当您使用ForeignKey时,您不需要最后的p.save(),但是现在您有了M2M

  • 添加到 m2m 后,您确定需要 `.save()` 吗?我现在正在尝试,似乎并不重要。 (4认同)