问题描述
我在 Django 中有 2 个模型: 优惠模式-
class Offer(models.Model):
Offer_Name=models.CharField(max_length=200,blank=False,verbose_name = "Auction Name")
vendor=models.ManyToManyField(User,limit_choices_to={'is_vendor': True},help_text = "Please select vendor valid for this offer",)
出价模式:
class Bid(models.Model):
offer=models.ForeignKey(Offer,on_delete=models.CASCADE)
Bid=models.IntegerField(blank=False,null=False,verbose_name = "Inital Bid Amount")
这两个模型都通过嵌套的stackedinline admin在django中链接:
class BidInline(nested_admin.nestedStackedInline):
model = Bid
extra=0
#max_num=vendorcount(Offer.vendor.through)
exclude = ('ven_id','new_bid','rank')
class OfferAdmin(nested_admin.nestedModelAdmin):
form =select2_modelform(Offer)
inlines = [
BidInline,]
我尝试使用 m2m 信号获取供应商多对多字段中选择的选项数量,并将其输入到 Bidinline 中的 max_num 字段,以便供应商中选择的选项数量= 额外投标表格的数量。
这是我的信号:
@receiver(m2m_changed,sender=Offer.vendor.through)
def vendorcount(sender,**kwargs):
instance = kwargs.pop('instance',None)
pk_set = kwargs.pop('pk_set',None)
action = kwargs.pop('action',None)
if action == "pre_add":
for i in pk_set:
instance.save()
print(len(pk_set))
return len(pk_set)
通过这个信号,我得到了长度,但在我点击保存按钮后。 我如何在多对多字段中选择选项以便更新 max_num 时获得它? 请帮忙。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)