在Django框架中,可以通過自定義ActionForm
來設置驗證規則。以下是一個簡單的示例,展示了如何自定義ActionForm
的驗證規則:
django.forms.Form
或django.forms.ModelForm
。在這個例子中,我們將創建一個繼承自django.forms.Form
的自定義表單類。from django import forms
class CustomActionForm(forms.Form):
field1 = forms.CharField(max_length=100)
field2 = forms.IntegerField()
clean_field1()
和clean_field2()
方法來自定義字段的驗證邏輯。在這些方法中,可以調用super().clean_field()
來執行默認的驗證,然后根據需要添加自定義的驗證邏輯。from django import forms
from django.core.exceptions import ValidationError
class CustomActionForm(forms.Form):
field1 = forms.CharField(max_length=100)
field2 = forms.IntegerField()
def clean_field1(self):
data = self.cleaned_data['field1']
# 添加自定義驗證邏輯
if "bad_word" in data.lower():
raise ValidationError("Invalid input")
return data
def clean_field2(self):
data = self.cleaned_data['field2']
# 添加自定義驗證邏輯
if data < 0:
raise ValidationError("Invalid input")
return data
from django.shortcuts import render
from .forms import CustomActionForm
def my_view(request):
if request.method == 'POST':
form = CustomActionForm(request.POST)
if form.is_valid():
# 處理表單數據
pass
else:
form = CustomActionForm()
return render(request, 'my_template.html', {'form': form})
{{ form }}
標簽渲染表單。<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Submit</button>
</form>
通過以上步驟,你已經成功地自定義了ActionForm
的驗證規則。當用戶提交表單時,Django會執行你在自定義表單類中定義的驗證邏輯。如果驗證失敗,將顯示相應的錯誤消息。