Can anyone told me how to prevent to store blank input field of multiple input in Django Models - django

In my form there are multiple input field means there are two fieldset in which same input fields are available and i want to store both that input into models in different ids. It is working but when i filled only one input field and click on submit button then the second one is also stored blank but i want to prevent it. It's means that i only want to store filled input field into model and blank one will not not stored.
My Form.html
<form class="well form-horizontal" method="post" action="{% url 'fixed_doclist' %}">
{% csrf_token %}
<fieldset>
<div class="form-group">
<label class="col-md-4 control-label">Document Name</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span><input id="fullName" name="dname" placeholder="Full Name" class="form-control" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Exp Date</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="postcode" name="exp" placeholder="Postal Code/ZIP" class="form-control" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Renewal Date</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="postcode" name="renewdt" placeholder="Postal Code/ZIP" class="form-control" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Purpose</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="state" name="purpose" placeholder="State/Province/Region" class="form-control" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Remarks</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span><input id="email" name="remark" placeholder="Email" class="form-control" value="" type="text"></div>
</div>
</div>
</fieldset><br/><br/>
<fieldset>
<div class="form-group">
<label class="col-md-4 control-label">Document Name</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span><input id="fullName" name="dname1" placeholder="Full Name" class="form-control" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Exp Date</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="postcode" name="exp1" placeholder="Postal Code/ZIP" class="form-control" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Renewal Date</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="postcode" name="renewdt1" placeholder="Postal Code/ZIP" class="form-control" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Purpose</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="state" name="purpose1" placeholder="State/Province/Region" class="form-control" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Remarks</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span><input id="email" name="remark1" placeholder="Email" class="form-control" value="" type="text"></div>
</div>
</div>
</fieldset>
<button>Submit</button>
</form>
View.py File
def fixed_doclist(request):
print("Form is submitted successfully!")
dname = request.POST.get("dname", False)
exp = request.POST.get("exp", False)
renewdt = request.POST.get("renewdt", False)
purpose = request.POST.get("purpose", False)
remark = request.POST.get("remark", False)
dname1 = request.POST.get("dname1", False)
exp1 = request.POST.get("exp1", False)
renewdt1 = request.POST.get("renewdt1", False)
purpose1 = request.POST.get("purpose1", False)
remark1 = request.POST.get("remark1", False)
DocFixed = Doc.objects.bulk_create([Doc(dname = dname, exp = exp, renewdt = renewdt, purpose = purpose, remark = remark),Doc(dname = dname1, exp = exp1, renewdt = renewdt1, purpose = purpose1, remark = remark1)])
return render(request,'fixeddoclist.html')
Model.Py File
class Doc(models.Model):
dname = models.CharField(max_length=20)
exp = models.CharField(max_length=10)
renewdt = models.CharField(max_length=50)
purpose = models.CharField(max_length=20)
remark = models.CharField(max_length=10)
def __str__(self):
return self.dname

Since you only want to create a Doc instance if all fields are provided, it should just be a case of checking that something is set for all fields. Since you might not have data for both Doc instances, you wouldn't need to bulk create.
For example:
def fixed_doclist(request):
print("Form is submitted successfully!")
doc_args = {
dname: request.POST.get("dname", False),
exp: request.POST.get("exp", False),
renewdt: request.POST.get("renewdt", False),
purpose: request.POST.get("purpose", False),
remark: request.POST.get("remark", False)
}
doc1_args = {
dname: request.POST.get("dname1", False),
exp: request.POST.get("exp1", False),
renewdt: request.POST.get("renewdt1", False),
purpose: request.POST.get("purpose1", False),
remark: request.POST.get("remark1", False)
}
if all(doc_args.values()):
Doc.objects.create(**doc_args)
if all(doc1_args.values()):
Doc.objects.create(**doc1_args)
return render(request,'fixeddoclist.html')

Related

Django form imageupload give empty dic

i am trying to create edit profile form, in which i am trying to data from edit profile form. i am getting all data in request.POST but i am getting empty {} using request.Files
view.py
class EditProfile(View):
template_name="todo_app/edit_profile.html"
def get(self,request,pk):
if request.user.is_authenticated:
user_id=pk
profile=UserProfile.objects.get(user=user_id)
content={
'profile':profile,
}
return render(request,self.template_name,content)
else:
return redirect('todo_app:login')
def post(self,request,pk):
request_data=request.POST
first_name=request_data.get('first_name')
last_name=request_data.get('last_name')
mob_no=request_data.get('mob_no')
address_1=request_data.get('address_1')
address_2=request_data.get('address_2')
gender=request_data.get('gender')
age=request_data.get('age')
state=request_data.get('state')
city=request_data.get('city')
country=request_data.get('country')
bio=request_data.get('bio')
# profile_pic=request.FILES['profile_pic']
print(request_data)
print("_"*123)
print(request.FILES)
return redirect('todo_app:edit_profile',pk)
and print result on console is
<QueryDict: {'csrfmiddlewaretoken': ['mkfuwR6Uc99svosQvsVpho11JOXOdESSmp2sm1ULDFrFu3UHRrkASTWeSyRwXyzH'], 'first_name': ['upasana'], 'last_name': ['kulshresths'], 'address_1': ['9 Purushottam Nagar'], 'address_2': ['Dayal Bagh'], 'mob_no': ['9087654321'], 'gender': ['Male'], 'age': ['12'], 'state': ['Uttar Pradesh'], 'city': ['Agra'], 'country': ['India'], 'bio': ['Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professo'], 'profile_pic': ['Screenshot from 2021-07-14 16-44-31.png']}>
___________________________________________________________________________________________________________________________
<MultiValueDict: {}>
edit_profile.html
<form method="POST" action="{% url 'todo_app:edit_profile' profile.user.id %}" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="first_name">First name</label>
<input type="text" class="form-control" id="first_name" value="{{profile.user.first_name}}" name="first_name" required>
</div>
<div class="col-md-6 mb-3">
<label for="last_name">Last name</label>
<input type="text" class="form-control" id="last_name" value="{{profile.user.last_name}}" name="last_name" required>
</div>
<div class="col-md-6 mb-3">
<label for="address_1">Address line 1</label>
<input type="text" class="form-control" id="address_1" value="{{profile.address_line_1}}" name="address_1" required>
</div>
<div class="col-md-6 mb-3">
<label for="address_2">Address line 2</label>
<input type="text" class="form-control" id="address_2" value="{{profile.address_line_2}}" name="address_2" required>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="mobile_no">Mobile No</label>
<input type="number" min="6000000000" max="9999999999" value="{{profile.user.mob_no}}" class="form-control" id="mobile_no" name="mob_no" required>
</div>
<div class="col-md-3 mb-3">
<label for="gender">Gender</label>
<select class="custom-select" id="gender" name="gender" required>
<option>Male</option>
<option>Female</option>
<option>🏳️‍🌈</option>
</select>
</div>
<div class="col-md-3 mb-3">
<label for="age">Age</label>
<input type="number" min="0" max="120" value="{{profile.age}}" class="form-control" id="age" name="age" required>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="State" class="form-label">State</label>
<input type="text" class="form-control" id="State" name="state" value="{{profile.state}}">
</div>
<div class="col-md-3 mb-3">
<label for="city" class="form-label">City</label>
<input type="text" class="form-control" id="city" name="city" value="{{profile.city}}">
</div>
<div class="col-md-3 mb-3">
<label for="country" class="form-label">Country</label>
<input type="text" class="form-control" id="country" name="country" value="{{profile.country}}" >
</div>
</div>
<div class="form-row">
<div class="col-md-10 mb-3">
<label for="bio">Bio</label>
<textarea class="form-control" placeholder="Leave a comment here" id="bio" style="height: 100px" name="bio">{{profile.bio}}</textarea>
</div>
<div class="col-md-2 mb-3 ml-auto mt-4">
<img src="{{profile.profile_pic.url}}" class="rounded-circle" width="100px" alt="...">
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="profile_pc_spam">Profile Pic</span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" id="profile_pic" name='profile_pic' >
<label class="custom-file-label" for="profile_pic">Choose file</label>
</div>
</div>
<div class="text-center">
<button class="btn my_button_delete mb-4 ustify-content-center" type="submit" >Submit form</button>
</div>
</form>
what am I doing wrong? i don't want to use django forms.
i try to search old question related this problem on stack overflow but i found that every one suggest using django form. if i missed any answer please tag me

One Bootstrap Modal affects the other

I have two bootstrap modals on a page. The first one (Modal_Add) will not work except if the second one (Modal_Edit) is first opened. The text boxes will not be clickable and nothing can be typed. But when I open the second one - without doing anything on it - and close, then open the first that was not working, it works. below are the codes
<!-- MODAL ADD -->
<form id="add_form" enctype="multipart/form-data">
<div class="modal fade" id="myModal" role="dialog" tabindex="-1" aria-labelledby="exampleModalLabelA" aria-hidden="true">
<div class="modal-dialog" >
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h5 class="modal-title" id="exampleModalLabelB">Add New Member</h5>
</div>
<div class="modal-body">
<div class="container-fluid">
<input type="hidden" name="member_units" id="member_units" value="<?php if (isset($units_code)){echo $units_code;}?>" class="form-control">
<div class="row-fluid">
<div class="span6">
<div class="col-md-8">
<label class="col-form-label">Entrance Fee</label>
</div>
</div>
<div class="span6">
<div class="col-md-8">
<input type="text" name="entrance_amount" id="entrance_amount" class="form-control" placeholder="Entrance Fee">
<span id="entrance_amount_error" class="label label-important"></span>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label">Member Name</label>
<div class="col-md-8">
<input type="text" name="member_name" id="member_name" class="form-control" placeholder="Name"> <span id="member_name_error" class="label label-important"></span>
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label">Address</label>
<div class="col-md-8">
<input type="text" name="member_address" id="member_address" class="form-control" placeholder="Address">
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label">Member Phone</label>
<div class="col-md-8">
<input type="text" maxlength="11" name="member_phone" id="member_phone" class="form-control" placeholder="Phone">
<span id="member_phone_error" class="label label-important"></span>
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label">Gender Status</label>
<div class="col-md-8">
<select name="gender_status" id="gender_status" class="form-control tooltips" data-trigger="hover" data-original-title="choose a Gender Status" >
<option value="0">--select--</option>
<option value="male">Male</option>
<option value="female">Female</option>
<option value="company">Company</option>
<option value="society">Society</option>
</select>
<span id="gender_status_error" class="label label-important"></span>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label">Banker</label>
<div class="col-md-8">
<input type="text" name="banker" id="banker" class="form-control" placeholder="Banker">
<span id="banker_error" class="label label-important"></span>
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label">Account Number</label>
<div class="col-md-8">
<input type="text" name="accountno" id="accountno" class="form-control" placeholder="Account Number" maxlength="10">
<span id="accountno_error" class="label label-important"></span>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label" id="g-label">Guarantors</label>
<div class="col-md-8">
<select data-placeholder="Type Guarantors" name="guarantors[]" id="guarantors" class="chosen" multiple="multiple">
<!-- <option value="0">A</option> -->
</select>
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label">Means of ID</label>
<div class="col-md-8">
<input type="text" maxlength="11" name="id_means" id="id_means" class="form-control" placeholder="Type your NIN">
<span id="id_means_error" class="label label-important"></span>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label">Date Joined</label>
<div class="col-md-8">
<input type="date" name="date_joined" id="date_joined" class="form-control datepicker" value="<?php echo date('Y-m-d'); ?>">
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label">Upload Passport</label>
<div class="col-md-8">
<input type='file' name='userfile' size='20' />
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" id="btn_save" class="btn btn-primary">Save</button>
</div>
</div>
</div>
</div>
</form>
<!--END MODAL ADD-->
<!-- MODAL EDIT -->
<form id="edit_form" enctype="multipart/form-data">
<div class="modal fade" id="Modal_Edit" role="dialog" tabindex="-1" aria-labelledby="exampleModalLabelE" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h5 class="modal-title" id="exampleModalLabelF">Edit Member</h5>
</div>
<div class="modal-body">
<div class="container-fluid">
<input type="hidden" name="member_units" id="member_units" value="<?php if (isset($units_code)){echo $units_code;}?>" class="form-control">
<div class="row-fluid">
<label class="col-md-4 col-form-label">Union Code</label>
<div class="col-md-8">
<input type="hidden" name="member_code_edit" id="member_code_edit" class="form-control" placeholder="Member Code" readonly>
<input type="text" name="union_code_edit" id="union_code_edit" class="form-control" placeholder="Union Code" readonly>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label">Member Name</label>
<div class="col-md-8">
<input type="text" name="member_name_edit" id="member_name_edit" class="form-control" placeholder="Name">
<span id="member_name_edit_error" class="label label-important"></span>
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label">Address</label>
<div class="col-md-8">
<input type="text" name="member_address_edit" id="member_address_edit" class="form-control" placeholder="Address">
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label">Member Phone</label>
<div class="col-md-8">
<input type="text" maxlength="11" name="member_phone_edit" id="member_phone_edit" class="form-control" placeholder="Phone">
<span id="member_phone_edit_error" class="label label-important"></span>
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label">Means of ID</label>
<div class="col-md-8">
<input type="text" maxlength="11" name="id_means_edit" id="id_means_edit" class="form-control" placeholder="Type your NIN">
<span id="id_means_edit_error" class="label label-important"></span>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label">Banker</label>
<div class="col-md-8">
<input type="text" name="banker_edit" id="banker_edit" class="form-control" placeholder="Banker">
<span id="banker_edit_error" class="label label-important"></span>
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label">Account Number</label>
<div class="col-md-8">
<input type="text" name="accountno_edit" id="accountno_edit" class="form-control" placeholder="Account Number" maxlength="10">
<span id="accountno_edit_error" class="label label-important"></span>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label">Date Joined</label>
<div class="col-md-8">
<input type="date" name="date_joined_edit" id="date_joined_edit" class="form-control datepicker" value="" readonly="">
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label">Upload Passport</label>
<div class="col-md-8">
<input type='file' name='userfile_edit' size='20'/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<label class="col-md-4 col-form-label" id="g-label">Current Guarantors</label>
<div class="col-md-8">
<div id="current_gurantors"></div>
<!-- <option value="0">A</option> -->
</div>
</div>
<div class="span6">
<label class="col-md-4 col-form-label" id="g-label">Guarantors</label>
<div class="col-md-8">
<select data-placeholder="Type Guarantors" name="guarantors_edit[]" id="guarantors_edit" class="chosen" multiple="multiple">
<!-- <option value="0">A</option> -->
</select>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" id="btn_update" class="btn btn-primary">Update</button>
</div>
</div>
</div>
</div>
</form>
<!--END MODAL EDIT-->
However, when i put the code for Modal_Edit on top of the code for Modal_Add, the problem affects Modal_Edit and vice versa
Edited
when I copied the code to https://www.codeply.com/p?starter=Bootstrap it works fine. What could be the problem?

Django image upload with js plugin issue

I am using js plugin to upload image, first time when i select image from the plugin the form gets submitted. The issue is that i select the image first time but then i don't want that image and i click on it again to upload another image, the form does not get validated and fails to submit.
views.py
class SelectObituaryView(LoginRequiredMixin, TemplateView):
template_name = "website/obituary_select.html"
def get_context_data(self, **kwargs):
context = super(SelectObituaryView, self).get_context_data(**kwargs)
church_id = self.request.session.get('church_id', None)
if church_id:
samples = ObituarySample.objects.filter(organization__id=church_id)
context['obituary_samples'] = samples
context['church_cover'] = self.request.session.get('church_cover', None)
return context
#transaction.atomic
def post(self, request):
print("Entered function")
try:
data = request.POST.copy()
data['organization'] = request.session.get('church_id', None)
data['slug'] = data['name'].replace(' ', '-')
data['funeral_time'] = data['funeral_time'].replace(" ", "")
data['viewing_time'] = data['viewing_time'].replace(" ", "")
if len(request.FILES.getlist('gallery')) > 10:
messages.error(request, "Max gallery images limit exceeded.")
return HttpResponseRedirect(
reverse('obituary:create', kwargs={'sample_obituary_id': request.POST.get('obituary_sample')}))
obituary_form = ObituaryForm(data=data, files=request.FILES)
# print("obituary form data",data)
print("before is valid")
if obituary_form.is_valid():
print("Inside is_valid")
obituary_instance = obituary_form.save(commit=False)
obituary_instance.image = obituary_instance.obituary_sample.background
obituary_instance.user = request.user
obituary_instance.save()
obituary_instance.update_slug_with_id()
#override profile_image
#imageName = os.path.basename(obituary_instance.profile_image.path)
imgArr = os.path.split(obituary_instance.profile_image.path)
image_data = request.POST['profile_image1']
b = json.loads(image_data)
head, data = b["output"]["image"].split(',')
binary_data = a2b_base64(data)
print(binary_data)
with open(obituary_instance.profile_image.path, 'wb+') as fh:
myfile = File(fh)
myfile.write(binary_data)
imprinted_image_path = apps.obituary.utils.imprint(obituary_instance, obituary_instance.obituary_sample)
# Save imprinted image in db
with open(imprinted_image_path, 'rb') as f:
data = f.read()
file_postfix = datetime.now().strftime("%Y%m%d-%H%M%S")
obituary_instance.image.save("%s%s.jpg" % ('obituary', file_postfix), ContentFile(data))
for gallery_image in request.FILES.getlist('gallery'):
GalleryImage.objects.create(obituary=obituary_instance, image=gallery_image)
return HttpResponseRedirect(reverse('obituary:preview', kwargs={'obituary_id': obituary_instance.id}))
else:
print("else")
messages.error(request, constants.OPERATION_UNSUCCESSFUL)
return HttpResponseRedirect(
reverse('obituary:create', kwargs={'sample_obituary_id': request.POST.get('obituary_sample')}))
except Exception as e:
print(e)
print("except")
messages.error(request, "Unable to create, Please try again.")
return HttpResponseRedirect(
reverse('obituary:create', kwargs={'sample_obituary_id': request.POST.get('obituary_sample')}))
html
{% extends "website/base.html" %}
{% load static %}
{% block javascript %}
<script>
// Submit post on submit
{# $('#create_obit').on('submit', function(event){#}
{# event.preventDefault();#}
{# alert("Aamixsh");#}
{# });#}
$("#create_obit").submit(function(evt){
//evt.preventDefault();
if($(this).find('input[name="profile_image"]').val() != "") {
$(this).find('input[name="profile_image"]').attr('name','profile_image1');
$(this).find(".slim").find('input[type="file"]').attr('name','profile_image');
return true;
}
});
$(document).ready(function(){
$('input[type="text"]').attr( 'autocomplete', 'off' );
$('.dateReadonly').attr( 'readonly', 'true' );
});
</script>
{% endblock %}
{% block body_block %}
<!-- Banner Area Start -->
<div class="banner-area">
<div class="overlay"></div>
<div class="img-holder">
<div class="holder"><img src="{{ church_cover }}" alt=""></div>
</div>
<div class="caption">
<div class="holder">
<div class="container">
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="banner">
<h2>Fill in Loved Ones Details</h2>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="section-space">
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="row">
<h3 class="heading-title">Create an Obituary</h3>
<form class="setting-form" id="create_obit" action="{% url 'obituary:select' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<fieldset>
<div class="col-xs-12">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
Name: <input type="text" maxlength="50" name="name" placeholder="Name*" class="form-control input-field" required>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
Funeral Address: <input type="text" maxlength="50" name="address" placeholder="Funeral Address*" class="form-control input-field" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
Date of Birth: <input type="text" id="datepicker1" name="date_of_birth" placeholder="Date of Birth*" class="dateReadonly form-control input-field" required>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
Date of Death: <input type="text" id="datepicker2" name="date_of_death" placeholder="Date of Death*" class="dateReadonly form-control input-field" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
Funeral Date: <input type="text" name="funeral_date" id="datepicker3" placeholder="Funeral Date*" class="dateReadonly form-control input-field" required>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
Funeral Time: <input type="text" name="funeral_time" id="timepicker" placeholder="Funeral Time*" class="form-control input-field" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
Surviving Family: <input type="text" maxlength="100" name="family_info" placeholder="spouse Mary Louise, and sons Joe, Ed, and Tim, etc. (Max Limit: 100 Characters)" class="form-control input-field" required>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
Ways To Contribute: <input type="text" maxlength="40" name="memorial_donation_info" placeholder="e.g. Donation url or other Information* (Max Limit: 40 Characters)" class="form-control input-field" >
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
Viewing Date: <input type="text" name="viewing_date" id="datepicker4" placeholder="Viewing Date*" class="dateReadonly form-control input-field" required>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
Viewing Time: <input type="text" name="viewing_time" id="timepicker2" placeholder="Viewing Time*" class="form-control input-field" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
Viewing Address: <input type="text" maxlength="50" name="viewing_address" placeholder="Viewing Address*" class="form-control input-field" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="form-group">
Message: <textarea maxlength="500" name="message" id="" cols="30" rows="10" class="form-control input-field" placeholder="Message* (Max Limit: 500 Characters)" required></textarea>
</div>
</div>
</div>
<input type="hidden" name="obituary_sample" value="{{ obituary_form.obituary_sample.value }}" />
</div>
<div class="col-sm-12">
<h3>Upload Obituary Photo</h3>
<div class = "form-group">
Maximum image size is 8 MB. You can rotate and crop the uploaded image by using the control buttons at the bottom of the image.
<!-- original <input type="file" name="profile_image" placeholder="Obituary Image*" class="form-control input-field" required> -->
<input type="file" name="profile_image" placeholder="Obituary Image*" class="slim" required>
</div>
</div>
<div class="col-xs-12">
<h3>Upload Gallery Photos</h3>
<div class="dropzone" id="my-awesome-dropzone">
<div class="fallback">
(Maximum image size should be 8 MB)
<input type="file" name="gallery" multiple class="form-control input-field"/>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<input type="checkbox" onchange="document.getElementById('create').disabled = !this.checked;" /> I understand, that the obituary cannot be edited once paid for!
</div>
</div>
</div>
<div class="col-xs-12">
<div class="form-group">
<button type="submit" id="create" class="btn send-btn" disabled>Create</button>
</div>
</div>
</fieldset>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Cannot assign "'Nokia1200'": "Order.pname" must be a "Product" instance

I have a 'Product' Model in which all the details of a product is available and I have a 'Order' Model with Foreign Key of Product Model. I am filtering the details on a particular field and trying to add that field in Order Model.
I applied this concept on a particular field like this: Product.objects.filter(pname='Nokia1200').values('pname','catgry','brand').
But it's produced an error message.
Form.html
<form class="well form-horizontal" method="post" action="{% url 'new_order' %}">
{% csrf_token %}
<fieldset>
{% for n in ListPrdt %}
<div class="form-group">
<label class="col-md-4 control-label">Select Product</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group">
<span class="input-group-addon" style="max-width: 100%;"><i class="glyphicon glyphicon-list"></i></span>
<select class="selectpicker form-control" name="pname">
<option>{{n.pname}}</option>
</select>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Category Name</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input id="fullName" name="catgry" placeholder="Full Name" class="form-control" required="true" value="{{n.catgry}}" type="text">
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Brand Name</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input id="fullName" name="brand" placeholder="Full Name" class="form-control" required="true" value="{{n.brand}}" type="text">
</div>
</div>
</div>
{% endfor %}
<div class="form-group">
<label class="col-md-4 control-label">Quantity</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span><input id="email" name="qnty" placeholder="Email" class="form-control" required="true" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Price</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-earphone"></i></span><input id="phoneNumber" name="price" placeholder="Phone Number" class="form-control" required="true" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Tax</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="addressLine2" name="tax" placeholder="Address Line 2" class="form-control" required="true" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Total</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="city" name="total" placeholder="City" class="form-control" required="true" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Delivery Date</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="state" name="deliverydt" placeholder="State/Province/Region" class="form-control" required="true" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Remarks</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span><input id="postcode" name="remark" placeholder="Postal Code/ZIP" class="form-control" required="true" value="" type="text"></div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Select Brand</label>
<div class="col-md-6 inputGroupContainer">
<div class="input-group">
<span class="input-group-addon" style="max-width: 100%;"><i class="glyphicon glyphicon-list"></i></span>
<select class="selectpicker form-control" name="conrej" disabled>
<option>Confirm</option>
<option>Rejected</option>
</select>
</div>
</div>
</div>
<button>Submit</button>
</fieldset>
</form>
Model.py
class Order(models.Model):
Reject = 'RJ'
Confirm = 'CN'
confchoice = ((Reject, 'Reject'),(Confirm, 'Confirm'),)
pname = models.ForeignKey(Product, on_delete=models.CASCADE)
catgry = models.CharField(max_length=10)
brand = models.CharField(max_length=50)
qnty = models.CharField(max_length=10)
price = models.CharField(max_length=20)
tax = models.CharField(max_length=20)
total = models.CharField(max_length=20)
deliverydt = models.CharField(max_length=20)
remark = models.CharField(max_length=10)
conrej = models.CharField(max_length=10, choices=confchoice, default="Reject")
def __str__(self):
return self.remark
Views.py
def NewOrder(request):
add_prdt = Product.objects.filter(pname='Nokia1200').values('pname','catgry','brand')
return render(request, 'neworder.html', {'ListPrdt' : add_prdt})
Product Model
class Product(models.Model):
pname = models.CharField(max_length=50)
catgry = models.CharField(max_length=20)
brand = models.CharField(max_length=20)
price = models.CharField(max_length=10)
qnty = models.CharField(max_length=10)
vname = models.CharField(max_length=50)
mfd = models.CharField(max_length=20)
exp = models.CharField(max_length=10)
height = models.CharField(max_length=10)
width = models.CharField(max_length=10)
color = models.CharField(max_length=10)
wght = models.CharField(max_length=10)
remark = models.CharField(max_length=50)
hsn = models.CharField(max_length=10)
def __str__(self):
return self.pname
Views.py File(For add new order in Order Model)
def new_order(request):
pname = request.POST.get("pname", False)
catgry = request.POST.get("catgry", False)
brand = request.POST.get("brand", False)
qnty = request.POST.get("qnty", False)
price = request.POST.get("price", False)
tax = request.POST.get("tax", False)
total = request.POST.get("total", False)
deliverydt = request.POST.get("deliverydt", False)
remark = request.POST.get("remark", False)
OrderNew = Order(pname = pname, catgry = catgry, brand = brand, qnty = qnty, price = price, tax = tax,
total = total, deliverydt = deliverydt, remark = remark)
OrderNew.save()
return render(request,'neworder.html')
Your filter query is:
product=Product.objects.filter(name='Nokia1200').first()
Order.objects.create(pname=product,.......)
Seems like the pname in the Order table is a foreign key to the product table. You cannot assign values to a foreign key column, instead, you should assign the product object.
Do something like this.
pn=Product.objects.get(pname='nokia')
Order.objects.create(pname=pn,.....)

In line view of forms in modal

I am using Bootstrap modal.
The following is my code.
<!-- Modal -->
<div class="modal fade" id="editModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4>Edit Equifax Credit Score Data</h4>
</div>
<div class="modal-body form-horizontal">
<div class="form-group row">
<label for="name" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="equiFaxName"
placeholder="Name" readonly="readonly" />
</div>
</div>
<div class="form-group row">
<label for="startRangeModal" class="col-sm-2 col-form-label">Start
Range</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="startRangeModal"
placeholder="Start Range" />
</div>
</div>
<div class="form-group row">
<label for="endRangeModal" class="col-sm-2 col-form-label">End
Range</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="endRangeModal"
placeholder="End Range" />
</div>
</div>
<div class="form-group row required">
<label for="riskGradeModal" class="col-sm-2 col-form-label">Risk
Grade </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="riskGradeModal"
placeholder="Risk Range" />
</div>
</div>
<div class="form-group row required">
<label for="agentRiskGradeModal" class="col-sm-2 col-form-label">Agent
Display Grade</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="agentRiskGradeModal"
placeholder="Agent Display Grade" />
</div>
</div>
<div class="form-group row required">
<label for="hitCode" class="col-sm-2 col-form-label"> Hit
Code</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="hitCodeModal"
placeholder="Hit Code" />
</div>
</div>
<div class="form-group row required">
<label for="hitCodeResponse" class="col-sm-2 col-form-label">
Hit Code</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="hitCodeResponseModal"
placeholder="Hit Code Response" />
</div>
</div>
<div class="form-group row required">
<label for="approvalTypeListModal" class="col-sm-2 col-form-label">Approval
Type</label> <select id="approvalTypeListModal" class="form-control">
</select>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary"
data-dismiss="modal">Cancel</button>
<button class="btn btn-success"
id="submitEditModalData">Save</button>
</div>
</div>
</div>
</div>
In the modal all the form inputs are inline horizontal but the select tag shows below the label and is not inline with the label.
Can someone help me in putting the select box in line and not below the label.
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div class="form-group row required">
<label for="approvalTypeListModal" class="col-md-2 col-sm-2 col-xs-2 col-form-label">Approval
Type
</label>
<div class="col-md-10 col-sm-10 col-xs-10">
<select id="approvalTypeListModal" class="form-control">
<option value="option1">Option1</option>
</select>
</div>
</div>
You forgot to put class col-md-* .
You can put it in select tag or can make a new div and give it to that class.
Hope this helps.