0

リストを manyToManyfield に保存しようとしていますが、オブジェクトの ID の横に別のフィールドを使用する必要があります。というフィールドに対してリストを一致させたいextid

これが私のモデルです:

class Used_benefit(models.Model):
    name = models.CharField(max_length=255)
    extid = models.PositiveIntegerField(verbose_name="External ID")

    def __unicode__(self):
        return self.name


class UserProfile(AbstractUser):
    benefits = models.ManyToManyField(Used_benefit, blank=True, null=True, related_name="benefits_used")
    updated = models.DateTimeField(blank=True, null=True)    

    objects = UserManager()   

オブジェクトを保存しようとする方法は次のとおりです。

webuser = UserProfile.objects.get(username__exact=user_id)
productlist = soup.personrecord.productlist.string #The list looks like this: 1,2,6


if productlist:
    webuser.benefits.add(benefits__extid=productlist)


webuser.save() 

しかし、その方法はうまくいきません。修正するにはどうすればよいですか?

4

1 に答える 1

1
if productlist:
    productlist = productlist.split(",")
    webuser.benefits.add(*Used_benefit.objects.filter(extid__in=productlist))

webuser.save()webuser オブジェクトに他の変更を加えない限り、必要ありません。

于 2013-07-09T08:37:10.547 に答える