0
ドキュメントに続いてカスタムエラーメッセージを作成しましたが(私が見つけたように)、エラーは発生しません。ここに私のコードは次のとおりです。テンプレートにDjango ModelFormのエラーメッセージが表示されない
<form method = "POST" action="{% url 'precheck:upload' %}" enctype="multipart/form-data" name="uploadForm">
{% csrf_token %}
{% for field in form %}
<div>
<strong>{{ field.errors }}</strong>
{{ field.label_tag }} {{ field }}
{% if field.help_text %}
<p class ="help-text">{{ field.help_text }}</p>
{% endif %}
</div>
{% endfor %}
<br />
<button type="button" id="uploadButton" data-loading-text="Loading..." class="btn btn-primary" autocomplete="off" style="margin: auto 20%; ">Upload</button>
</form>
views.py
def upload(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES, user = request.user)
if form.is_valid():
form.save()
request.session['jobID'] = request.POST['jobID']
#job = Job.objects.filter(user_id = request.user.id).filter(jobID = request.POST['jobID']).latest()
# initialize(job)
return render(request,'precheck/run_precheck.html')
form = UploadFileForm()
historyList = Job.objects.filter(user_id = request.user.id)[:10]
return render(request, 'precheck/upload.html',{'form': form, 'history': historyList})
upload.html
forms.py
class UploadFileForm(forms.ModelForm):
class Meta:
model = Job
fields = ['jobID','original_file']
labels = {
'jobID': _('Job ID'),
'original_file': _('File'),
}
error_messages = {
'jobID': {
'max_length': _("Job ID is limited to 50 characters."),
'required': _("Please provide a Job ID."),
'invalid': _("Job ID must be a combination of letters, numbers, - and _.")
},
'original_file': {
'required': _("Please provide a file."),
'validators': _("Please ensure you are selecting a zipped (.zip) GDB."),
},
}
help_texts = {
'original_file': _('Please provide a zipped (.zip) GDB.'),
}
私は関連性があると思うすべてを含めました。何かもっと必要なものがあれば教えてください。
フィールドを検証し、これらのエラーを生成するために何をしていますか?私が「必須」を例に挙げると、 'job'モデルの' jobID'と 'original_file'必須フィールドは必須ですか?そして、あなたが 'jobID'をフォームに記入しないと、投稿後にエラーが表示されないと言っていますか?あなたのビューは実際にあなたのフォームを検証し、それが有効でない場合にレンダリングしますか? (あなたのview.pyコードを見せてください) – dirkgroten
@dirkgroten上記の 'views.py'を追加しました。 'jobID'と' original_file'はモデルの必須フィールドです。 'jobID'は' validate_slug'と 'MaxLengthValidator'を使って検証されます。 – chaserchap