【发布时间】:2019-04-23 15:00:51
【问题描述】:
我正在用 django 开发一个项目,但我遇到了一个小问题。
我正在尝试从另一个对象的 querySet 中获取一个数组。尝试获取具有“carro_det.id_articulo_fk”字段的“articulo”,并将其发送到我的模板上下文:
但在 querySet 中我收到错误“int() 参数必须是字符串、类似字节的对象或数字,而不是 'Articulo'”
具体在一行:articulo[i]=Articulo.objects.get(pk=carro_det[i].id_articulo_fk)
这是我的观点.py:
def index(request, id_user):
carro=Carro.objects.get(id_usuario_fk=id_user)
carro_det=Carro_det.objects.filter(id_articulo_fk=carro.id)
#HERE IS THE PROBLEM
for i in range(len(carro_det)):
articulo[i]=Articulo.objects.get(pk=carro_det[i].id_articulo_fk)
contexto = {'articulo':articulo,
'carro_det':carro_det}
return render(request, 'cart/cart.html', contexto)
这是来自我的 models.py,你可以在这里看到一切都很好:
class Carro(models.Model):
total = models.FloatField(default=0, null=True, blank=True)
#llaves foraneas
id_usuario_fk=models.ForeignKey('myuser.Usuario', null=True, blank=True, on_delete=models.CASCADE, db_column='id_usuario_fk')
def __str__(self):
return "id_carro_cliente: " + str(self.id)
class Carro_det(models.Model):
cantidad = models.IntegerField(default=0)
precio_venta = models.FloatField(default=0)
total = models.FloatField(default=0)
#llaves foraneas
id_carro_fk=models.ForeignKey('Carro', null=True, blank=True, on_delete=models.CASCADE, db_column='id_carro_fk')
id_articulo_fk=models.ForeignKey('article.Articulo', on_delete=models.CASCADE, db_column='id_articulo_fk')
def __str__(self):
return "numero de carro asociado: " + str(self.id_carro_fk.pk)
希望有人能帮帮我,谢谢!
【问题讨论】: