黑夜里的白羊 2022-09-02 10:54 采纳率: 0%
浏览 19
已结题

Django admin action 命令问题

Django admin action 命令问题, 在admin添加action执行操作,没有反应

#admin模块
class WareAdjustAdmin(admin.ModelAdmin):
 def custom_button(self, request, model_admin):
        """
         调整操作
         :param request:
         :param object_id:
         :return:
         """
        if request.POST.get('id'):
            with transaction.atomic():
                for item in AdjustItem.objects.filter(master=self, status=0):
                    inventory = item.inventory
                    if item.prop == '+':
                        inventory.cnt += item.cnt
                    else:
                        inventory.cnt -= item.cnt
                    inventory.save()
                    item.status = 1
                    item.event_time = datetime.datetime.now()
                    item.source = self.code
                    item.save()
                    self.status = '9'
                    self.execute_time = datetime.datetime.now()
                    self.save()




#下面是model模块

class WareAdjust(models.Model):
    """
    库存调整
    """
    STATUS = (
        ('0', '新建'),
        ('1', '进行中'),
        ('9', '已执行')
    )
    index_weight = 4
    code = models.CharField(max_length=120, blank=True, null=True, verbose_name='编号')
    # org = models.ForeignKey(Organization,verbose_name=_("organization"),blank=True,null=True)
    title = models.CharField(max_length=40, verbose_name='标题')
    description = models.TextField(blank=True, null=True, verbose_name='描述信息')
    user = models.ForeignKey(User, verbose_name='使用人', blank=True, null=True, on_delete=models.SET_NULL,
                             related_name=None)
    status = models.CharField(max_length=2, default='0', choices=STATUS, verbose_name='状态')
    execute_time = models.DateTimeField(blank=True, null=True, verbose_name='执行时间')

class AdjustItem(InOutDetail):
    """
    库存调整明细
    """
    master = models.ForeignKey(WareAdjust, on_delete=models.CASCADE)
    inventory = models.ForeignKey(Inventory, blank=True, null=True, verbose_name='物资名称', on_delete=models.SET_NULL)

    def save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        if self.inventory:
            self.material = self.inventory.material
            self.unit = self.inventory.unit
            self.warehouse = self.inventory.warehouse
        super(AdjustItem, self).save(force_insert, force_update, using, update_fields)

    def __str__(self):  # 设置输出对象时的信息
        return self.master.code

    class Meta:
        verbose_name = '库存调整'
        verbose_name_plural = verbose_name

class InOutDetail(models.Model):
    """
    in out detail
    """

    PROP = (
        ('+', '增加'),
        ('-', '减少')
    )

    create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
    status = models.BooleanField(verbose_name='执行', default=0)
    event_time = models.DateTimeField(verbose_name='结束时间', blank=True, null=True)
    warehouse = models.ForeignKey(Warehouse, verbose_name='仓库', blank=True, null=True, on_delete=models.CASCADE)
    material = models.ForeignKey(Material, verbose_name='物资名称', blank=True, null=True, on_delete=models.CASCADE)
    unit = models.ForeignKey(Unit, verbose_name='计量单位', blank=True, null=True, on_delete=models.CASCADE)
    cnt = models.DecimalField(verbose_name='数量', max_digits=14, decimal_places=2, blank=True, null=True)
    batch = models.CharField(verbose_name='批次', max_length=20, blank=True, null=True)
    price = models.DecimalField(verbose_name='价格', max_digits=14, decimal_places=2, blank=True, null=True)
    prop = models.CharField(verbose_name='增加/减少', max_length=120, choices=PROP, default='+')
    source = models.CharField(verbose_name='来源', max_length=20, blank=True, null=True)

没用翻译
我想要达到的结果

在admin界面执行按键,实现表单的执行

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-02 12:01
    关注
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月9日
  • 创建了问题 9月2日

悬赏问题

  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败