from django.db import models
class booking(models.Model):
fname=models.CharField( max_length=50)
lname=models.CharField( max_length=50)
email=models.EmailField(max_length=254)
city=models.CharField(max_length=50)
state=models.CharField(max_length=50)
pin=models.IntegerField()
def __str__(self):
return self.fname
class approved(models.Model):
fname=models.CharField( max_length=50)
lname=models.CharField( max_length=50)
email=models.EmailField(max_length=254)
city=models.CharField(max_length=50)
state=models.CharField(max_length=50)
pin=models.IntegerField()
def __str__(self):
return self.fname
def adminp(request):
if 'form_rejected' in request.POST and request.method=="POST":
print("Went into reject")
p=booking.objects.filter(id=request.POST.get('object_id','')).delete()
print(p)
elif 'form_approved' in request.POST and request.method=="POST":
print("went in approve")
fname= booking.objects.filter(fname=request.POST.get('object_fname','')).values_list('fname')
lname= booking.objects.filter(lname=request.POST.get('object_lname','')).values_list('lname')
email= booking.objects.filter(email=request.POST.get('object_email','')).values_list('email')
city= booking.objects.filter(city=request.POST.get('object_city','')).values_list('city')
state= booking.objects.filter(state=request.POST.get('object_state','')).values_list('state')
pin= booking.objects.filter(pin=request.POST.get('object_pin','')).values_list('pin')
app= approved(fname=fname,lname=lname,email=email,city=city,state=state,pin=pin)
app.save()
print(fname,pin)
x=booking.objects.all()
params={'pro': x}
return render(request,'dbms/adminpanel.html',params)
<form action="" method="POST">
{% csrf_token %}
<div class="col"><p>Firstname: {{i.fname}}</p></div>
<div class="col"><p>Lastname: {{i.lname}}</p></div>
<div class="col"><p>Email: {{i.email}}</p></div>
<div class="col"><p>City: {{i.city}}</p></div>
<div class="col"><p>Pin: {{i.pin}}</p></div>
<input type="hidden" name="object_fname" value="{{ i.fname }}">
<input type="hidden" name="object_lname" value="{{ i.lname }}">
<input type="hidden" name="object_email" value="{{ i.email }}">
<input type="hidden" name="object_city" value="{{ i.city }}">
<input type="hidden" name="object_state" value="{{ i.state }}">
<input type="hidden" name="object_pin" value="{{ i.pin }}">
<input class="btn btn-success mx-2" name="form_approved" type="submit" value="Approve">
<input type="hidden" name="object_id" value="{{ i.id }}">
<input class="btn btn-danger mx-2" name="form_rejected" type="submit" value="Reject"> <!--Added attribute name="form_rejected"-->
打印fname和pin的输出后的输出:
went in approve
<QuerySet [('snaTYE',)]> <QuerySet [(939393,)]>
[当我仅打印fname进行检查时,会给我一个无法插入的查询集,因此如何在批准的数据库中插入以下内容,或如何仅在queryset中获取值。
使用隐藏字段object_id
的值获取booking
实例。您不需要其他隐藏字段。如您所发现,booking.objects.filter()
为您提供了一个查询集。使用booking.objects.get()
获取单个实例。如果不存在与您的查询匹配的数据库条目,这并不是一个例外。然后使用booking
实例中的值创建approved
实例。
try:
booking_obj = booking.objects.get(id=request.POST.get('object_id')
approved_obj = approved.objects.create(
fname=booking_obj.fname,
lname=booking_obj.lname,
email=booking_obj.email,city=booking_obj.
city,
state=booking_obj.state,
pin=booking_obj.pin
)
except booking.DoesNotExist:
# handle error somehow
两句话:
class Booking
。我建议您遵守此约定,除非您有充分的理由不这样做。