Django get_or_create和ManytoManyField

时间:2014-03-11 15:26:09

标签: python django

我之前使用的是ForeignKey。

模型

class Phone_request_list(models.Model):
    who = models.IntegerField(null=True)
    whose = models.ForeignKey(User)

查看

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()

但现在我想将我的模型改为manytomany字段

class Phone_request_list(models.Model):
    who = models.IntegerField(null=True)
    whose = models.ManyToManyField(User) 

这次如何在whose中使用who检查get_or_create。请帮我。

1 个答案:

答案 0 :(得分: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()
顺便说一下,当你使用ForeignKey时你不需要最后的p.save(),但现在你已经拥有了M2M