Möglicherweise werde ich aufgefordert, die Adresse in das Anfrageformular oder das Benutzerregistrierungsformular einzugeben. Bei der Eingabe der Postleitzahl habe ich jedoch ein Formular erstellt, in das die Adresse automatisch eingegeben wird, sodass es sich um ein Memo handelt.
Modellformulare werden manchmal in Django-Formularen verwendet, aber dieses Mal habe ich die Methode gewählt, sie in forms.py in einer einzelnen Anwendung zu schreiben.
Dieses Mal habe ich ajaxzip3 für das Plug-In zum automatischen Ausfüllen der Adresse verwendet.
Erstellen Sie forms.py des Anwendungsverzeichnisses und schreiben Sie Folgendes.
apps/forms.py
from django import forms
class TestForm(forms.Form):
zip21 = forms.RegexField(
regex=r'^[0-9]+$',
max_length=3,
)
zip22 = forms.RegexField(
regex=r'^[0-9]+$',
max_length=4,
widget=forms.TextInput(attrs={'onKeyUp' : "AjaxZip3.zip2addr('zip21','zip22','addr21','addr21')"}),
)
addr21 = forms.CharField()
Als ich es zum ersten Mal schrieb, dachte ich, dass zip22 eine schlechte Art zu schreiben ist, aber es hat funktioniert.
Übergeben Sie das Formular vorerst nur an HTML.
apps/views.py
from django.shortcuts import render, get_object_or_404, redirect
from forms.forms import *
def form(request):
if request.method == 'POST':
//Beschreiben Sie die Verarbeitung nach Erhalt der POST-Anforderung
else:
form = ContactForm()
return render(request,
'test/form.html',
dict(form = form)
)
Rufen Sie das Formular in HTML auf.
templates/form.html
<!DOCTYPE html>
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}">
<head>
<meta charset="UTF-8">
<title>form</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script>
</head>
<body>
<form method="post">
{% csrf_token %}
{{ form.zip21 }}-{{ form.zip22 }}<br>
{{ form.addr21 }}<br>
<button type="submit">submit</button>
</form>
</body>
</html>
Dieses Mal schaue ich mir die Remote-Datei auf github an, aber Sie können sie auch von hier herunterladen, in einem statischen Ordner speichern und lesen.
Wenn Sie möchten, dass die Postleitzahl ein Feld ist
apps/forms.py
from django import forms
class TestForm(forms.Form):
zip11 = forms.RegexField(
regex=r'^[0-9]+$',
max_length=7,
widget=forms.TextInput(attrs={'onKeyUp' : "AjaxZip3.zip2addr(this,'','addr11','addr11')"}),
)
addr11 = forms.CharField()
templates/form.html
<!DOCTYPE html>
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}">
<head>
<meta charset="UTF-8">
<title>form</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script>
</head>
<body>
<form method="post">
{% csrf_token %}
{{ form.zip11 }}<br>
{{ form.addr11 }}<br>
<button type="submit">submit</button>
</form>
</body>
</html>
Es scheint, dass Sie wie oben schreiben sollten. Abgesehen davon möchten Sie möglicherweise nur die Präfekturen in verschiedene Bereiche unterteilen. Weitere Informationen hierzu finden Sie in der Ajazip3-Dokumentation und in den Referenzlinks.
Selbst wenn Präfekturen per Pulldown angezeigt wurden, konnten wir wie folgt reagieren
apps/forms.py
from django import forms
class TestForm(forms.Form):
zip11 = forms.RegexField(
regex=r'^[0-9]+$',
max_length=7,
widget=forms.TextInput(attrs={'onKeyUp' : "AjaxZip3.zip2addr(this,'','addr11','addr11')"}),
)
addr11 = forms.CharField()
Recommended Posts