【发布时间】:2021-08-04 18:05:46
【问题描述】:
我不知道如何实际编写逻辑,但我想检查用户输入,尤其是针对产品模型(价格属性)的价格表单字段。
我已经对 django 表单进行了如下建模:
class SalesForm(forms.ModelForm):
class Meta:
model = Sales
fields = ['product', 'customer', 'quantity', 'price']
这是产品模型
class Product(models.Model):
name = models.CharField(max_length=100, null=True)
category = models.CharField(max_length=100, choices=CATEGORY, null=True)
cost = models.PositiveIntegerField(null=True)
price = models.PositiveIntegerField(null=True)
quantity = models.PositiveIntegerField(null=True)
这是我在views.py中逻辑上尝试做的事情
def user_add_sales(request):
sales = Sales.objects.all().order_by('-salesdate')[:5]
if request.method == 'POST':
sales_form = SalesForm(request.POST)
if sales_form.is_valid:
sales_price = sales_form.cleaned_data('price')
try:
user_input = Product.objects.get(price = sales_price)
sales_form.save()
messages.success(request, 'Sales Added Successfully')
return redirect('dashboard-user-sales')
except user_input.DoesNotExist:
sales_form = SalesForm()
else:
sales_form = SalesForm()
context = {
'sales' : sales,
'sales_form' : sales_form,
}
return render(request, 'dashboard/user_sales.html', context)
尝试运行代码时,显示“SalesForm”对象没有“cleaned_data”属性。有人应该帮助我如何检查用户在 SalesForm 的价格字段中输入的内容是否不低于在 Product Model 中为该产品设置的价格。
【问题讨论】: