Hello, I performed a CRUD operation and every thing is working well except two things 1. my insert form does not clear the text boxes after saving a record 2. my delete operation renders an error page after deleting a record with a message ''DoesNotExist at /delete/3/" or "AttributeError at /delete/6/" example of the error messages are shown below. i also attached view.py, model.py and template file
DoesNotExist at /delete/3/ Soapprod matching query does not exist. *Request Method:* POST *Request URL:* http://localhost:8000/delete/3/ *Django Version:* 2.1.5 *Exception Type:* DoesNotExist *Exception Value:* Soapprod matching query does not exist. *Exception Location:* C:\Users\IFEANYI CHIELO\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py in get, line 399 *Python Executable:* C:\Users\IFEANYI CHIELO\AppData\Local\Programs\Python\Python37\python.exe *Python Version:* 3.7.2 *Python Path:* ['C:\\Users\\IFEANYI CHIELO\\divinecrown', 'C:\\Users\\IFEANYI ' 'CHIELO\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip', 'C:\\Users\\IFEANYI CHIELO\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 'C:\\Users\\IFEANYI CHIELO\\AppData\\Local\\Programs\\Python\\Python37\\lib', 'C:\\Users\\IFEANYI CHIELO\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\IFEANYI ' 'CHIELO\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages'] *Server time:* Mon, 25 May 2020 00:03:25 +0000 or AttributeError at /delete/6/ 'str' object has no attribute 'get' *Request Method:* POST *Request URL:* http://localhost:8000/delete/6/ *Django Version:* 2.1.5 *Exception Type:* AttributeError *Exception Value:* 'str' object has no attribute 'get' *Exception Location:* C:\Users\IFEANYI CHIELO\AppData\Local\Programs\Python\Python37\lib\site-packages\django\middleware\clickjacking.py in process_response, line 26 *Python Executable:* C:\Users\IFEANYI CHIELO\AppData\Local\Programs\Python\Python37\python.exe *Python Version:* 3.7.2 *Python Path:* ['C:\\Users\\IFEANYI CHIELO\\divinecrown', 'C:\\Users\\IFEANYI ' 'CHIELO\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip', 'C:\\Users\\IFEANYI CHIELO\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 'C:\\Users\\IFEANYI CHIELO\\AppData\\Local\\Programs\\Python\\Python37\\lib', 'C:\\Users\\IFEANYI CHIELO\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\IFEANYI ' 'CHIELO\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages'] *Server time:* Mon, 25 May 2020 00:09:23 +0000 -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/b43b280d-ab19-4620-8544-133c897396f0%40googlegroups.com.{% extends "base.html" %} {% load crispy_forms_tags %} {% block content %} {% csrf_token %}
{{form.date|as_crispy_field}}
{{form.Serial_White_Guava|as_crispy_field}}
{{form.Serial_White_Premium|as_crispy_field}}
{{form.Soft_Flower_Body_Wash|as_crispy_field}}
{{form.Soft_Flower_Fresh|as_crispy_field}}
{{form.Soft_Flower_Orange_Lightening|as_crispy_field}}
{{form.Soft_Flower_Carot_Lightening|as_crispy_field}}
{{form.Soft_Flower_Papaya_Extract|as_crispy_field}}
{{form.Soft_Flower_Extra_Lightening|as_crispy_field}}
{{form.Serial_White_Papaya_4in1|as_crispy_field}}
# from django.shortcuts import render
# from .models import Postrec
# from .forms import ProductForm
# # Create your views here.
# # Create your views here.
# from django.views.generic import TemplateView
# class HomePageView (TemplateView):
# template_name = 'home.html'
# class AboutPageView (TemplateView):
# template_name = 'about.html'
# #from django.shortcuts import render
# class CreatepostPageView (TemplateView):
# template_name = 'createpost.html'
from django.http import HttpResponseRedirect
# from django.shortcuts import redirect
from django.shortcuts import render
from .models import Soapprod
from .forms import StaffrecForm, SoapprodForm
from django.views.generic import TemplateView
# def HomePageView (request, *args, **kwargs):
# return render(request,"home.html", {})
def Basep_view (request,*args, **kwargs):
return render(request,"basep.html", {})
def Namev_view (request,*args, **kwargs):
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
data = Soapprod(serial_white_guava ='Me')
form = NameForm(request.POST, instance=data)
form.save()
return HttpResponseRedirect('/namev/')
else:
form = NameForm()
sum = 10/2
return render(request, "namev.html", {'form': form,'sum':sum})
# pages/views.py
# from django.shortcuts import render
from pages.forms import UserForm,UserProfileInfoForm
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse
from django.contrib.auth.decorators import login_required
def index(request):
my_name = "My name is Chielo Celestine"
from pages.my_name import name
return render(request,'index.html',{'ur_name':my_name,'another':name})
@login_required
def special(request):
return HttpResponse("You are logged in !")
@login_required
def user_logout (request):
logout (request)
return HttpResponseRedirect(reverse('index'))
def register (request):
registered = False
if request.method == 'POST':
user_form = UserForm(data=request.POST)
profile_form = UserProfileInfoForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
if 'profile_pic' in request.FILES:
print('found it')
profile.profile_pic = request.FILES['profile_pic']
profile.save()
registered = True
else:
print(user_form.errors,profile_form.errors)
else:
user_form = UserForm()
profile_form = UserProfileInfoForm()
return render(request,'registration.html',
{'user_form':user_form,
'profile_form':profile_form,
'registered':registered})
def user_login (request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user:
if user.is_active:
login(request,user)
return HttpResponseRedirect(reverse('index'))
else:
return HttpResponse("Your account was inactive.")
else:
print("Someone tried to login and failed.")
print("They used username: {} and password: {}".format(username,password))
return HttpResponse("Invalid login details given")
else:
return render(request, 'login.html', {})
from django.shortcuts import render
# Create your views here.
from django.http import JsonResponse
from pages.models import Soapprod
from django.core import serializers
def dashboard_with_pivot (request):
return render(request, 'dashboard_with_pivot.html', {})
def pivot_data(request):
dataset = Soapprod.objects.all()
data = serializers.serialize('json', dataset)
return JsonResponse(data, safe=False)
# delete view for details
def soapprod_list (request):
context = {'soapprod_list': Soapprod.objects.all()}
return render(request, "soapprod_list.html", context)
def soapprod_form (request, id=0):
if request.method == "GET":
if id == 0:
form = SoapprodForm()
else:
soapprod = Soapprod.objects.get(pk=id)
form = SoapprodForm (instance=soapprod)
return render(request, "soapprod_form.html", {'form': form})
else:
if id == 0:
form = SoapprodForm(request.POST)
else:
soapprod = Soapprod.objects.get(pk=id)
form = SoapprodForm(request.POST,instance= soapprod)
if form.is_valid():
form.save()
return render(request, "soapprod_form.html", {'form': form})
#return render(request,'/employee/list')
#return render(request,'soapprod_list.html')
#return render(request, "soapprod_form.html", {'form': form})
#return redirect(request, "soapprod_form.html", {'form': form})
#return render(request,'soapprod_list.html')
#return redirect('/employee/list')
def soapprod_delete (request,id):
soapprod = Soapprod.objects.get(pk=id)
if request.method =="POST":
soapprod.delete()
return ('/soapprod/lists')
#return render(request, "soapprod_form.html", {'form': form})
# return redirect('/soapprod/list')
# Staff INFORMATION
from django.shortcuts import render, redirect
from pages.forms import StaffrecForm
from .models import Staffrec
from django.db import models
from datetime import date
class Employee(models.Model):
fullname = models.CharField(max_length=100)
emp_code = models.CharField(max_length=3)
mobile= models.CharField(max_length=15)
position= models.CharField(max_length=15)
class Staffrec(models.Model):
staff_id = models.CharField(max_length=5)
fullname = models.CharField(max_length=35)
sex = models.CharField(max_length=7)
email = models.EmailField()
address = models.CharField(max_length=100)
mobile= models.CharField(max_length=15)
position= models.CharField(max_length=30)
department = models.CharField(max_length=25)
class Meta:
db_table = "staffrec"
class Soapprod (models.Model):
id = models.AutoField(primary_key=True)
Serial_White_Guava = models.CharField(max_length=7, blank = True, null = True)
Serial_White_Premium = models.CharField(max_length=7, blank = True, null = True)
Soft_Flower_Body_Wash = models.CharField(max_length=7, blank = True, null = True)
Soft_Flower_Fresh = models.CharField(max_length=7, blank = True, null = True)
Soft_Flower_Orange_Lightening = models.CharField(max_length=7, blank = True, null = True)
Soft_Flower_Carot_Lightening = models.CharField(max_length=7, blank = True, null = True)
Soft_Flower_Papaya_Extract = models.CharField(max_length=7, blank = True, null = True)
Soft_Flower_Extra_Lightening = models.CharField(max_length=7, blank = True, null = True)
Serial_White_Papaya_4in1 = models.CharField(max_length=7, blank = True, null = True)
date = models.DateField(default = date.today)
def __str__(self):
return self.serial_white_guava
class Creamprod (models.Model):
id = models.AutoField(primary_key=True)
Serial_White_ExLM = models.CharField(max_length=7, blank = True, null = True)
Serial_White_Gold_SWM = models.CharField(max_length=7, blank = True, null = True)
Soft_Flower_LL = models.CharField(max_length=7, blank = True, null = True)
Soft_Flower_FC = models.CharField(max_length=7, blank = True, null = True)
date = models.DateField(default = date.today)
from django.contrib.auth.models import User
# Create your models here.
class UserProfileInfo(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
portfolio_site = models.URLField(blank=True)
profile_pic = models.ImageField(upload_to='profile_pics',blank=True)
def __str__(self):
return self.user
# class Soapsales (Soapprod):
# SOAP_MARKETER_STATUS = (
# ('M', 'Marketers'),
# ('D1', 'Distributor 1'),
# ('D2', 'Distributor 2'),
# ('D3', 'Distributor 3'),
# )
# soap_marketer_status = models.CharField(max_length=1, choices=SOAP_MARKETER_STATUS)
class Creamsales (Creamprod):
CREAM_MARKETER_STATUS = (
('M', 'Marketers'),
('D1', 'Distributor 1'),
('D2', 'Distributor 2'),
('D3', 'Distributor 3'),
)
cream_marketer_status = models.CharField(max_length=1, choices=CREAM_MARKETER_STATUS)
class Staffinfo (models.Model):
staff_id = models.CharField(max_length=5)

