我正在建立一個具有 2 種用戶型別的網站,并且對 django 來說還是新手。而且我想添加功能以在產品銷售時添加產品的賣家。很抱歉,我無法更好地解釋它。這是models.py的代碼:
class Ordered(models.Model):
products = models.ForeignKey(Products, on_delete = models.SET_NULL, null = True)
seller = models.ForeignKey(SellerProfile, on_delete = models.SET_NULL, null = True)
buyer = models.ForeignKey(CustomerProfile, on_delete = models.CASCADE)
ordered_on = models.DateTimeField(auto_now_add = True)
產品/模型.py
class Products(models.Model):
seller = models.ForeignKey(SellerProfile, on_delete = models.CASCADE)
title = models.CharField(max_length = 255)
product_category = models.CharField(choices = CATEGORY_CHOICES, max_length = 100, default = 'eBooks')
description = models.TextField()
files = models.FileField(upload_to = 'media/product_files/', null = True)
slug = models.SlugField(max_length = 255, unique = True, null = True, blank = True)
這是信號代碼:
@receiver(post_save, sender = Ordered)
def new_order_for_seller(sender, instance, created, *args, **kwargs):
seller = Ordered.seller.sellerprofile
if created:
Ordered.objects.create(seller = seller)
對代碼的任何建議或更正都將非常有幫助。謝謝
uj5u.com熱心網友回復:
您可以將seller屬性設定為instance.product.seller:
@receiver(pre_save, sender = Ordered)
def new_order_for_seller(sender, instance, created, *args, **kwargs):
if created and instance.product is not None:
instance.seller_id = instance.product.seller_id
我們可以在pre_save信號中執行此操作,以防止再次保存新Ordered物件。
話雖這么說,由于賣方已經由 確定Product,因此重復這一點沒有多大意義,因為它最終會導致不一致,即Sellera 的 aProduct稍后發生變化,而 theOrdered仍指向“舊” Seller。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/406263.html
標籤:
