Как проверить и получить данные в базе данных с помощью шаблона 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 не работают. Пожалуйста, помогите мне с кодом.