我该怎么做才能在views.py中执行所有操作,还可以在admin.py上共享操作?

时间:2018-11-26 13:33:57

标签: django

我阅读了一些文档,在django管理站点上查看了一些教程,但是最后我可以通过django admin购买商品,但是库存中的商品数量并没有增加。 除了管理站点django之外,其他所有事情都进行得很顺利,尤其是计算的存在 谢谢您的理解

我希望django管理员执行的功能:

def achat_form_view(request,totalachat=0):
if request.method == 'POST':
    form = AchatForm(request.POST,error_class=ParagraphErrorList)
    if form.is_valid():
        achat = form.save()
        article = achat.id_article_a
        article.quantite += achat.quantite_a
        totalachat+= article.prix_d_achat * achat.quantite_a
        print('total achat :',totalachat)
        article.save()
        form =AchatForm()
       # return redirect('manapoitra_achat')
else:
    form = AchatForm()
return render(request, 'achatH.html', {'form': form,'totalachat':totalachat})

1 个答案:

答案 0 :(得分:0)

您需要在Django管理员上覆盖protected function executeInsert(Insert $insert) { $insertState = $insert->getRawState(); if ($insertState['table'] != $this->table) { throw new Exception\RuntimeException('The table name of the provided Insert object must match that of the table'); } // apply preInsert features $this->featureSet->apply('preInsert', array($insert)); $statement = $this->sql->prepareStatementForSqlObject($insert); $result = $statement->execute(); $this->lastInsertValue = $this->adapter->getDriver()->getConnection()->getLastGeneratedValue(); // apply postInsert features $this->featureSet->apply('postInsert', array($statement, $result)); return $result->getAffectedRows(); } 才能实现您的业务逻辑。

您在这里有更多信息:https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model