#python #django #model-view-controller #foreign-keys
#python #django #модель-представление-контроллер #внешние ключи
Вопрос:
Это моя таблица Toko
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)
** Это мой CartPaket **
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', on_delete=models.CASCADE, default=1)
def __str__(self):
return self.customer_name
Это мой views.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()
Это информация о запросе post
[1]: https://i.stack.imgur.com/OZhnU.png
Это ошибка, которую я получил [2]: https://i.stack.imgur.com/LYQja.png
Ответ №1:
Замените toko_id на toko_id__id . Таким образом, вы говорите, что значение после «=» является идентификатором экземпляра toko_id.
toko_id — это экземпляр, который вы определили в своих моделях. Его идентификатор toko_id.id
Комментарии:
1. да, чувак, ты прав (но я должен заменить toko_id на toko_id_id без двойного подчеркивания), мои большие ошибки в том, что я хочу создать новый cartpaket и заполнить значение toko_id__username , когда toko_id__username находится в таблице Toko ха-ха. у cartpaket есть только toko_id и toko_id_id из экземпляра (таблица Toko). извините за мой английский, я думал, что мой английский такой плохой, ха-ха. спасибо мистеру Джаффу за ответ на мой вопрос. надеюсь, у вас хорошая жизнь 🙂