Я занимаюсь разработкой проекта с использованием django, и у меня возникла небольшая проблема.
Я пытаюсь получить массив из набора запросов другого объекта.Попытка получить «articulo», у которого есть поле «carro_det.id_articulo_fk», и после отправки его в контекст моего шаблона:
Но в querySet я получаю ошибку, аргумент int () должен бытьстрока, байтовоподобный объект или число, а не 'Articulo' '
Конкретно в строке: articulo[i]=Articulo.objects.get(pk=carro_det[i].id_articulo_fk)
Это из моих views.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)
Я надеюсь, что кто-нибудь может помочь мне с этим, Спасибо!.