現在、Djangoでバリデーションチェックを非同期で行えるよう試みています。
Ajax,Jsonに関しては知見が非常に低いです。
非同期でレスポンスできているか否かを、一時的にアラートで返しています。
views
1Class RiceFormView (generic.DetailView): 2 template_name = 'apps/rice_form.html' 3 4~~~~~~~ 5 def post(self): 6 form = AddriceForm(request.POST) 7 if form.is_valid(): 8 kome = form.save() 9 if self.request.is_ajax(): 10 return JsonResponse({ 11 'is_vaild': True, 12 13 })
urls
1 path('rice/', 2 views.RiceFormView.as_view(), name='rice_form'),
javascript
1<script> 2$(function() { 3 $('form').on('submit', function(e){ 4 e.preventDefault(); 5 var $form = $(this); 6 $.ajax({ 7 url: $form.attr('action'), 8 type: $form.attr('method'), 9 data: $form.serialize(), 10 timeout: 1000, 11 }).done(function(data) { 12 if (data.is_vaild) { 13 alert('yes'); 14 }else{ 15 alert('NO'); 16 } 17 }); 18 }); 19}); 20</script>
です。
期待している挙動は、上記の通り、空欄があった場合はアラートでNOを返し、
空欄がない場合は、アラートYESを返して欲しい
といった内容です。