如何在另一个模型视图(例如django)中增加文章的价值

如何在另一个模型视图(例如django)中增加文章的价值,django,Django,所以在这里,我想在保存购买模型时增加我的文章模型的现有数量, 下面是我在views.py中的代码,它不起作用! 我还是Django的初学者。先谢谢你 例如: 库存物品数量:20件 购买期间购买的数量:5 因此,在数据库的最后,我想有25在项目沃伦在股票! 对不起我的英语,我使用谷歌翻译 def achat_form_view(request): if (request.method == 'POST'): form = AchatForm(request.POST,err

所以在这里,我想在保存购买模型时增加我的文章模型的现有数量, 下面是我在views.py中的代码,它不起作用! 我还是Django的初学者。先谢谢你

例如: 库存物品数量:20件 购买期间购买的数量:5 因此,在数据库的最后,我想有25在项目沃伦在股票! 对不起我的英语,我使用谷歌翻译

def achat_form_view(request):
    if (request.method == 'POST'):
        form = AchatForm(request.POST,error_class=ParagraphErrorList)
        if form.is_valid():
            Article.quantite = Article.quantite + Achat.quantite_a
            form.save(commit=True)
            return redirect('manapoitra_achat')
    else:
        form = AchatForm()
    return render(request, 'achatH.html', {'form': form})
models.py:

class Achat(models.Model):
    id_article_a = models.ForeignKey(Article, on_delete=models.CASCADE)
    id_fournisseur_a = models.ForeignKey(Fournisseur, on_delete=models.CASCADE)
    quantite_a = models.PositiveIntegerField(max_length=4, verbose_name="Quantité(s)")
    date_a = models.DateTimeField(auto_now_add=True, verbose_name="Date de création")
    date_save_tara_a = models.DateField(blank=True, null=True)

    def __unicode__(self):
        return self.pk+' achat'

class Article(models.Model):
    photo = models.FileField()
    nom = models.CharField(max_length=60, verbose_name="Produit")
    type = models.ForeignKey(Type, verbose_name="Type", on_delete=models.CASCADE)
    categorie = models.ForeignKey(Categorie, verbose_name="Catégorie", on_delete=models.CASCADE)
    prix_de_vente = models.CharField(max_length=8, verbose_name="Prix de vente")
    prix_d_achat = models.CharField(max_length=8, verbose_name="Prix d'achat")
    quantite = models.PositiveIntegerField(max_length=4, verbose_name="Quantité(s)")
    date_a = models.DateTimeField(auto_now_add=True, verbose_name="Date de création")
    date_de_perim = models.DateField(blank=True, null=True, verbose_name="Perimé(e) le")

    def __str__(self):
        return self.nom

代码的问题在于Achat和Article引用的是整个类,而不是任何特定实例。你要做的是使用你的表单创建的Achat,并增加在该表单中选择的特定文章的数量。您可以通过
form.save()
的返回值执行此操作,该值是Achat的一个实例

if form.is_valid():
    achat = form.save()
    article = achat.id_article_a
    article.quantite += achat.quantite_a
    article.save()
    return redirect('manapoitra_achat')

(注意,您的字段命名约定非常奇怪;没有必要使用
\u a
作为后缀,但更重要的是,您不应该使用
id
前缀命名ForeignKey字段;Django ForeignKey不是一个id,而是允许您直接访问相关对象。因此,例如
id\u article\u a
应该是
articlele

但“价值”是什么这里?是文章中的一个字段吗?如果是的话,你如何决定增加哪篇文章的数量?你应该展示你的模型和表单定义。不要把代码放在评论中,编辑问题并将其发布在那里,格式正确。感谢这项工作!在几篇文档之后,我没有找到如何做到这一点但是如果你不介意的话,我在哪里可以找到一个教程来学习你在那里做了什么?如果我使用操作符-=,它也有效吗?以及如何使条件不带负值?谢谢