Как проверить и получить данные в базе данных с помощью шаблона django и api, если их там нет, то разместить новые данные.(rest_framework)

У меня есть код для django api для отображения существующих данных в postman. Но мне нужно сначала проверить, что email_id существует, если он существует, я хочу отобразить данные, если его нет, мне нужно создать данные, используя этот email_id.

Я использую form.py,

from socket import fromshare
from newappapi.models import example
from django import forms
from rest_framework import status
from django.http.response import JsonResponse
from rest_framework.parsers import JSONParser
from newappapi.serializers import exampleSerializer


class VenueForm(forms.ModelForm):
    class Meta:
        model = example
        fields = ['email_id']

    def save(request,self, commit=True):
        email_id = forms.EmailField(max_length = 200)
        venue = super(VenueForm, self).save(commit=False)
        email_id = self.cleaned_data['email_id']
        if request.method == 'GET':
            email_id = request.GET.get('email_id', None)      
            values = example.objects.filter(email_id=email_id)
            if values.exists():
                tutorials_serializer = exampleSerializer(values, many=True)
                return JsonResponse(tutorials_serializer.data, safe=False)
            return JsonResponse({'message': 'The email_id does not exist'}, 
       status=status.HTTP_404_NOT_FOUND)
    
       if commit:
           venue.save()
       return venue

Я использую шаблон,

{% block content %}
<center>
<h1>Email Verification</h1>
<br/><br/>
<form action="" method="POST , GET">
    {% csrf_token %}
    {{form}}
    <label>Email-id</label>
    <input type="text" id="id" class="form-control"/><br/><br/>
    <input type="submit" value="Verify" class="btn btn primary">
  
    <input type="submit" value="Post" class="btn btn primary">

</form>
</center>
{% endblock %}

У меня есть две кнопки (verify, Post), если мы нажмем verify, то она должна показать данные, если они существуют, или post, чтобы создать их, Код кнопки в views.py следующий,

def venue_add_view(request):
   form_venue = VenueForm(request.POST or request.GET)
   if form_venue.is_valid():
       form_venue.save()
       if request.method == 'GET':
          email_id = request.GET.get('email_id', None)      
          values = example.objects.filter(email_id=email_id)
          if values.exists():
             tutorials_serializer = exampleSerializer(values, many=True)
             return JsonResponse(tutorials_serializer.data, safe=False)
          return JsonResponse({'message': 'The email_id does not exist'}, 
         status=status.HTTP_404_NOT_FOUND)
   context = {
         'form_venue': form_venue,
   }
   return render(request, "data-add.html", context)

Но кнопка и api не работают. Пожалуйста, помогите мне с кодом.

Вернуться на верх