新人求助:django admin action问题,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界面执行按键,实现表单的执行
评论 0