如何在django表单中设置变量maxValue



我在django框架中为一个销售网站编写代码,并且某些商品的可用部分数量有限。为了获得剩余产品的数量,我必须调用某个函数。现在我想问是否有任何方法可以在models.py或forms.py模块中调用该函数或任何其他方法来设置此限制。

这是我的视图模块:

from django.http.response import HttpResponse, HttpResponseRedirect
from django.shortcuts import render
from .forms import orderForm
from regpage.models import User
from django.views import View
class orderView(View):
def get(self, request):
form = orderForm()
return render(request, "dashboard/order.html", {'form': form,})

这是我的表单模块:

from django import forms
from .models import Order
class orderForm(forms.ModelForm):
class Meta:
model = Order
fields = ['productCount']

这是我的模型模块:

from django.db import models
from django.db.models.enums import Choices
from regpage.models import User
from django.core import validators
from django.core.validators import EmailValidator, MaxValueValidator, MinValueValidator
class Order(models.Model):
userID = models.ForeignKey(User, on_delete=models.CASCADE)
productCount = models.PositiveSmallIntegerField() #THE LIMITED FIELD
这是我的html文件:
{% extends 'dashboard.html' %}
{% block dashTitle %}
Order
{% endblock dashTitle %}

{% block dashContent %}
<p style="text-align:center;font-size:30px;"><b> Order Page </b> </p>

<form style="text-align:center;font-size:25px" method="POST">
{% csrf_token %}
{% for field in form %}
<div class="form-control {% if field.errors %}errors{% endif %}">
{{ field.label_tag }}
{{ field }}
{{ field.errors }}
</div>
<br>
{% endfor %}
<br>
<button type="submit">Order</button>    
</form>
{% endblock dashContent %}

本网站只有一个产品,需要调用一个函数来获取剩余产品的数量。

试一试

class orderForm(forms.ModelForm):
quantity = forms.IntegerField(widget=forms.TextInput(
attrs={
'min':0,
'value':0,
'type':'number',
}))
class Meta: 
model = Order
fields = ('__all__')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['productCount'].widget.attrs.update(
{'max': self.instance.productCount},
)

最新更新