如何在另一个模型视图(例如django)中增加文章的价值
所以在这里,我想在保存购买模型时增加我的文章模型的现有数量, 下面是我在views.py中的代码,它不起作用! 我还是Django的初学者。先谢谢你 例如: 库存物品数量:20件 购买期间购买的数量:5 因此,在数据库的最后,我想有25在项目沃伦在股票! 对不起我的英语,我使用谷歌翻译如何在另一个模型视图(例如django)中增加文章的价值,django,Django,所以在这里,我想在保存购买模型时增加我的文章模型的现有数量, 下面是我在views.py中的代码,它不起作用! 我还是Django的初学者。先谢谢你 例如: 库存物品数量:20件 购买期间购买的数量:5 因此,在数据库的最后,我想有25在项目沃伦在股票! 对不起我的英语,我使用谷歌翻译 def achat_form_view(request): if (request.method == 'POST'): form = AchatForm(request.POST,err
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
)但“价值”是什么这里?是文章中的一个字段吗?如果是的话,你如何决定增加哪篇文章的数量?你应该展示你的模型和表单定义。不要把代码放在评论中,编辑问题并将其发布在那里,格式正确。感谢这项工作!在几篇文档之后,我没有找到如何做到这一点但是如果你不介意的话,我在哪里可以找到一个教程来学习你在那里做了什么?如果我使用操作符-=,它也有效吗?以及如何使条件不带负值?谢谢