当我想在cartpaket表中插入新数据时,出现了此错误“无法分配” 7”:“ CartPaket.toko_id”必须是“ Toko”实例”

问题描述

这是我的Toko Table

class Toko(models.Model):
nama_toko = models.CharField(max_length=30)
username = models.CharField(max_length=30)
image_banner = models.ImageField(upload_to='toko')
lokasi = models.CharField(max_length=30)
deskripsi = models.CharField(max_length=30)
status = models.CharField(max_length=30)
boolean= models.BooleanField(default=0)

def __str__(self):
    return self.username

这是我的产品表

class Produk(models.Model):
nama_produk = models.CharField(max_length=30)
gambar = models.ImageField(upload_to='produk')
size = models.IntegerField(default=500)
deskripsi = models.CharField(max_length=200)
harga_resseler = models.IntegerField(default=0)
harga_agen = models.IntegerField(default=0)
harga_distributor = models.IntegerField(default=0)
harga_retail = models.IntegerField(default=0)
harga_hpp = models.IntegerField(default=0)

**这是我的购物车**

class CartPaket(models.Model):
customer_name = models.CharField(max_length=30)
harga = models.IntegerField()
quantity = models.IntegerField(default=0)
total_berat = models.IntegerField(default=200)
subtotal = models.IntegerField(default=0)
total = models.IntegerField(default=0)
tanggal_pesan = models.DateTimeField(auto_Now_add=True)
kota_customer_id = models.IntegerField(null=True)
kota_pelapak_id = models.IntegerField(null=True)

toko_id = models.ForeignKey(Toko,verbose_name='toko',on_delete=models.CASCADE,default=1)
produk_id = models.ForeignKey(Produk,verbose_name='produk',default=1)
def __str__(self):
    return self.customer_name

这是我的观点。py

                if CartPaket.objects.filter(customer_name=get_user,produk_id=pro.id,toko_id=get_toko.id).exists():
                cart = CartPaket.objects.get(produk_id=pro.id,customer_name=get_user,toko_id=get_toko.id)
                cart.quantity += jumlah
                cart.save()
            else:
                if jumlah != 0 or jumlah != '':
                    barang_distributor = Barang.objects.get(produk_id=pro.id,toko_id=get_toko.id) 
                    cart = CartPaket(produk_id=pro.id,harga=barang_distributor.harga_jual,toko_id=get_toko.id,customer_name=request.user.username,quantity=jumlah,kota_customer_id=kota_customer_id,kota_pelapak_id=kota_pelapak_id)
                    cart.total_berat = cart.quantity * cart.produk_id.size
                    cart.subtotal = cart.harga * cart.quantity
                    cart.save()

这是发帖请求信息 [1]:https://i.stack.imgur.com/OZhnU.png

这是我所犯的错误 [2]:https://i.stack.imgur.com/LYQja.png

解决方法

将toko_id替换为toko_id__id。这样,您说的是“ =”之后的值是toko_id实例的ID。

toko_id是一个实例,就像您在模型中定义的一样。它的ID是toko_id.id