Django не получает ни одного запроса в бэкенд после отправки формы
Привет всем Я пытаюсь отправить форму в Django. но я не получаю никакого ответа в Backend. когда я нажимаю на submit. форма не отправляется.
Код
Модели
class JobListing(models.Model):
position = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, blank=True)
company_name = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
about_company = models.TextField(blank=True)
description = models.TextField()
city = models.CharField(max_length=250)
job_location = models.CharField(max_length=250)
KeySkill = models.TextField()
eligiblity = models.TextField(blank=True)
resposibility = models.TextField(blank=True)
min_experience = models.FloatField()
max_experience = models.FloatField()
last_date_to_apply = models.DateField(default=timezone.now)
min_salary = models.PositiveIntegerField()
max_salary = models.PositiveIntegerField()
shift_time = models.CharField(max_length=15, choices=shiftDetail)
posted = models.DateField(default=timezone.now)
number_of_position_opening = models.PositiveIntegerField(default=1)
job_post_status = models.IntegerField(default=1, choices=job_post_status)
def save(self, *arg, **kwargs):
if not self.slug:
self.slug = slugify(self.position)
super(JobListing, self).save(*arg, **kwargs)
def __str__(self):
return str(self.position) + " -- " + str(self.company_name)
Form.py
class JobList(forms.ModelForm, forms.Form):
job_location = forms.ModelChoiceField(queryset=CountryAndState.objects.filter(country__isnull=False).distinct())
Key_Skill = forms.ModelMultipleChoiceField(
queryset=skill.objects.all().values_list('name', flat=True).distinct().order_by('name'),
widget=forms.SelectMultiple, required=False, blank=True)
class Meta:
model = JobListing
fields = ['position', 'number_of_position_opening', 'company_name', 'about_company', 'description',
'eligiblity', 'resposibility', 'city',
'job_location', 'KeySkill', 'Key_Skill', 'min_experience', 'max_experience', 'min_salary',
'max_salary', 'shift_time', 'last_date_to_apply']
exclude = ['slug', 'posted']
widgets = {
'KeySkill': forms.TextInput(attrs={'type':'text'}),
'about_company': forms.Textarea(attrs={'rows': 100, 'cols': 15}),
'last_date_to_apply': forms.DateInput(attrs={'type':'date'})
}
def __init__(self, user, *args, **kwargs):
super(JobList, self).__init__(*args, **kwargs)
for field in self.fields.keys():
widget = self.fields[field].widget
if 'cols' in widget.attrs and 'rows' in widget.attrs:
widget.attrs.update({'class': 'form-control pl-15 bg-transparent summernote'})
else:
widget.attrs.update({'class': 'form-control pl-15 bg-transparent'})
widget.attrs['placeholder'] = self.fields[field].label
self.fields[field].required = False
self.fields['company_name'].queryset = User.objects.filter(created_by=user, user_type=4)
View.py
class JobCreateView(LoginRequiredMixin, TemplateView):
template_name = 'Job/Recruiter/PostNewJob.html'
template_name2 = 'Job/RecruiterAgency/PostNewJob.html'
redirect_field_name = 'redirect_to'
def get(self, request, *args, **kwargs):
joblist = JobList(request.user.id)
if request.user.user_type == 2:
return render(request, self.template_name, {"form": joblist})
elif request.user.user_type == 3:
return render(request, self.template_name2, {"form": joblist})
def post(self, request):
job_detail = JobList(request.user.id, request.POST)
field = job_detail.fields.pop('Key_Skill')
if job_detail.is_valid():
job_detail.save()
return redirect('/job/manage_job')
job_detail.fields['Key_Skill'] = field
if request.user.user_type == 2:
return render(request, self.template_name, {"form": job_detail})
elif request.user.user_type == 3:
return render(request, self.template_name2, {"form": job_detail})
template.html
{%extends 'index.html'%}
<body class="hold-transition light-skin sidebar-mini theme-primary">
{%block body%}
<div class="content-wrapper">
<h1>Create New Job</h1>
<div class="">
<form action="" enctype="multipart/form-data" method="post" id="form">
{%csrf_token%}
<div>
{{form.as_p}}
{{form.errors}}
</div>
<button type="submit" class="btn btn-dark" value="Submit" form="form"> Submit </button>
</form>
</div>
Я пробовал как метод Submit с тегами Input, так и Button. Я пытался отладить код, но не получаю никаких запросов в бэкенде. Кнопка submit ведет себя так, как будто она отключена
Вы добавили action как пустой в тег формы
<form action="" enctype="multipart/form-data" method="post" id="form">
добавьте соответствующее имя url в тег формы
<form action="{% url 'post_url_name' %}" enctype="multipart/form-data" method="post" id="form">