0
我试图将列表保存到manyToManyfield,但我需要使用对象的ID旁边的另一个字段。我希望它匹配反对所谓extid
保存列表为manytomany字段不使用ID字段
这里领域的列表是我的模型:
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()
但是这种方法不工作。我需要做些什么来解决它?
太棒了!谢谢!不应该在'if productlist'之后分割列表吗?不确定如果产品清单是空的或丢失会发生什么? –
是的,你是对的,在'if productlist'之后分割它。如果你分割空字符串,你会得到'['']'。另外请注意,我添加了'*'来展开'add'参数 – draganHR
非常好!再次感谢你。 –