django - 我想通过将数量和价格相乘来生成餐厅账单如何做到这一点
问题描述
在我的发票食品名称和食品价格代码中,都在本地主机门户上显示食品名称,因此请查看我的外键并指导如何将产品价格和数量相乘。我正在向您展示添加产品表和发票表,它们的表格也请注意并指导我
模型.py
class AddFood(models.Model):
food_name = models.CharField(max_length=20)
food_price = models.PositiveIntegerField()
company = models.ForeignKey(CompRegister, on_delete=models.CASCADE)
res = models.ForeignKey(ResRegister, on_delete=models.CASCADE)
def __str__(self):
return self.food_name
class GenerateInvoice(models.Model):
foods_name = models.ForeignKey(AddFood, null=True, on_delete=models.CASCADE, related_name='food_n')
foods_price = models.ForeignKey(AddFood, null=True, on_delete=models.CASCADE, related_name='food_p')
quantity = models.PositiveIntegerField()
company = models.ForeignKey(CompRegister, on_delete=models.CASCADE)
res = models.ForeignKey(ResRegister, null=True, on_delete=models.CASCADE)
start_date = models.DateTimeField(auto_now_add=True)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def __str__(self):
return self.res, self.foods_name
def total_price(self):
return AddFood.food_price * self.quantity
表格.py
class FoodForm(forms.ModelForm):
def __init__(self, user, *args, **kwargs):
super(FoodForm, self).__init__(*args, **kwargs)
self.fields['res'].queryset = ResRegister.objects.filter(res=True, company__user_id=user)
class Meta:
model = AddFood
exclude = ['company','price','food']
fields = '__all__'
class InvoiceForm(forms.ModelForm):
def __init__(self, user, *args, **kwargs):
super(InvoiceForm, self).__init__(*args, **kwargs)
self.fields['foods_name'].queryset = AddFood.objects.filter(company__user_id=user)
self.fields['foods_price'].queryset = AddFood.objects.filter(company__user_id=user)
class Meta:
model = GenerateInvoice
exclude = ['company','res','start_date',]
fields = '__all__'
视图.py
def generate_invoice(request):
u = CompRegister.objects.get(user_id=request.user)
if request.method == 'POST':
form = InvoiceForm(request.user, request.POST)
if form.is_valid():
form_r = form.save(commit=False)
form_r.company = u
form_r.save()
return redirect('company:cart_page')
else:
print(form.errors)
else:
form = InvoiceForm(request.user)
return render(request, 'comp/generate_invoice.html', {'form': form})
generate_invoice.html
<!DOCTYPE html>
{% extends 'Comp_base.html' %}
{% block head %}
<meta charset="UTF-8">
<title>Generate Invoice</title>
{% endblock %}
{% block body %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Generate Invoice</button>
</form>
{% endblock %}
</html>
解决方案
推荐阅读
- hibernate - @CreationTimestamp @UpdateTimestamp 在更新实体类后不立即可用
- reactjs - 获取“TypeError:无法读取未定义的属性'map'”
- swiftui - SwiftUI ForEach 循环未从 ObservableObject 更新
- java - 单击单选按钮android studio时如何获取纯文本的值
- reactjs - 有谁知道我如何在我的反应应用程序中解决这个警告?
- regex - 用冒号替换每个奇怪的逗号 - 正则表达式
- python - 如何仅将某些参数传递给函数?
- php - 尝试在树莓派上使用 exec() 函数从 php 脚本在后台启动 php 脚本
- reactjs - 如何在useEffect钩子反应中停止内存泄漏
- javascript - Turbolinks、动态导入(file.js)、d3 重新加载