如何获取 M2M django 中每个选择的每个 id
how to get each id of each selected in M2M djnago
我想获取所选imeis的ID
class Mobile(models.Model):
mobile = models.CharField(max_length=20,unique=True)
quantity = models.IntegerField()
imei = models.ManyToMany(Imei,on_delete=models.CASCADE)
class Imei(models.Model):
imei = models.CharField(max_length=13,unique=True)
active = models.BooleanField(default=True)
如果我选择了 10 个 imei,我想获得 10 个所选 imei 的 ID!?
我试过这种方法,但没有人成功!
instance.imei__id
instance.imei.id
instance.imei_id
感谢你的帮助
instance.imei
是 经理。您可以通过以下方式访问 Imei
个对象:
instance.imei<b>.all()</b> # QuerySet of Imei objects
或者如果您只对 Imei
个对象的主键 (pk
s) 感兴趣:
instance.imei<b>.values_list('pk', flat=True)</b> # QuerySet of Imei primary keys
编辑:您可以更新所有值:
instance.imei<b>.all().update(active=False)</b>
例如,您可以 运行 在 CreateView
中使用:
class MyCreateView(CreateView):
model = Mobile
# …
def form_valid(self, form):
result = super().form_valid(form)
self.object.imei.all().update(active=False)
return result
或 "nested" ManyToManyField
:
class MyCreateView(CreateView):
model = Mobile
# …
def form_valid(self, form):
result = super().form_valid(form)
<b>Imei.objects.filter(</b>selectmobile__item=self.object<b>)</b>.update(active=False)
return result
我想获取所选imeis的ID
class Mobile(models.Model):
mobile = models.CharField(max_length=20,unique=True)
quantity = models.IntegerField()
imei = models.ManyToMany(Imei,on_delete=models.CASCADE)
class Imei(models.Model):
imei = models.CharField(max_length=13,unique=True)
active = models.BooleanField(default=True)
如果我选择了 10 个 imei,我想获得 10 个所选 imei 的 ID!? 我试过这种方法,但没有人成功!
instance.imei__id
instance.imei.id
instance.imei_id
感谢你的帮助
instance.imei
是 经理。您可以通过以下方式访问 Imei
个对象:
instance.imei<b>.all()</b> # QuerySet of Imei objects
或者如果您只对 Imei
个对象的主键 (pk
s) 感兴趣:
instance.imei<b>.values_list('pk', flat=True)</b> # QuerySet of Imei primary keys
编辑:您可以更新所有值:
instance.imei<b>.all().update(active=False)</b>
例如,您可以 运行 在 CreateView
中使用:
class MyCreateView(CreateView):
model = Mobile
# …
def form_valid(self, form):
result = super().form_valid(form)
self.object.imei.all().update(active=False)
return result
或 "nested" ManyToManyField
:
class MyCreateView(CreateView):
model = Mobile
# …
def form_valid(self, form):
result = super().form_valid(form)
<b>Imei.objects.filter(</b>selectmobile__item=self.object<b>)</b>.update(active=False)
return result