Я использую этот код для редактирования и удаления в django python, но это сообщение показывает DoesNotExist at /Edit/1 или DoesNotExist at /Delete/1

я использую этот код для редактирования и удаления в django python но это сообщение показывает DoesNotExist at /Edit/1 или DoesNotExist at /Delete/1

       def stedit(request, id):
        getsudentdetails= acc.objects.get(studnumber=id)
        return render(request, 'edit.html',{"acc":getsudentdetails})
    
       def stupdate(request,id):
        if request.method=='POST':
            stupdate= acc.objects.get(studnumber=id)
            form=stform(request.POST,instance=stupdate)
            if form.is_valid():
                form.save()
                messages.success(request, "The Student Record Is Updated Successfully..!")
            return render(request, "edit.html",{"acc":stupdate})
      
      def stdel(request,  id):
        delstudent= acc.objects.get(studnumber=id)
        delstudent.delete()
        results=acc.objects.all()
        return render (request, "Login.html",{"acc":results})

Models.py

from django import forms from django.db import models

class acc(models.Model): 
        studnumber=models.IntegerField(unique=True)
        firstname=models.CharField(max_length=150)
        middlename=models.CharField(max_length=150)
        lastname=models.CharField(max_length=150)
        age=models.IntegerField()
        gender=models.CharField(max_length=1)
        uname=models.CharField(max_length=150,unique=True)
        email=models.CharField(max_length=150,unique=True)
        pwd=models.CharField(max_length=150)
        contact=models.CharField(max_length =11)
  
class Meta:
    unique_together = ('studnumber','email','uname')

class NewACCForm(forms.ModelForm):
    class Meta:
        model = acc
        fields = "__all__"

Вы можете использовать ObjectDoesNotExist[Django-doc] как документировано

Базовый класс для исключений Model.DoesNotExist. Метод try/except для ObjectDoesNotExist будет перехватывать исключения DoesNotExist для всех моделей.

from django.core.exceptions import ObjectDoesNotExist

def stedit(request, id):
    try:
        getsudentdetails= acc.objects.get(studnumber=id)
        return render(request, 'edit.html',{"acc":getsudentdetails})
    except ObjectDoesNotExist:
            #... do something if data not exists with provided studnumber value

def stupdate(request, id):
    if request.method=='POST':
        try:
            stupdate= acc.objects.get(studnumber=id)
            form=stform(request.POST,instance=stupdate)
            if form.is_valid():
                form.save()
                messages.success(request, "The Student Record Is Updated Successfully..!")
            return render(request, "edit.html",{"acc":stupdate})
        except ObjectDoesNotExist:
            #... do something if data not exists with provided studnumber value
  
def stdel(request, id):
    try:
        delstudent= acc.objects.get(studnumber=id)
        delstudent.delete()
        results=acc.objects.all()
        return render (request, "Login.html",{"acc":results})
    except ObjectDoesNotExist:
            #... do something if data not exists with provided studnumber value
Вернуться на верх