Я вставляю новые записи в модель с использованием функционального представления, но проблема в том, что некоторые поля не сохраняются.
Я получаю все поля через request.POST.get(field_name)
и присваиваю их переменной перед сохранением в соответствующем поле модели.
views.py
def CreateExam(request):
if request.method == "POST":
st_exam = exam()
topic = request.POST.get("topic")
auth = request.POST.get("author")
date_now = request.POST.get("date_now")
st_exam.topic = request.POST.get("topic")
st_exam.auth = request.POST.get("author")
st_exam.date = date_now
st_exam.total_grade = request.POST.get("total_grade")
st_exam.semester_id = request.POST.get("semester")
st_exam.exam_id = auth[0:2] + topic[0:2] + date_now
# st_exam.course = request.POST.get("course")
y = datetime.now()
st_exam.semester_id = str(y.year) +'-'+request.POST.get("semester")
st_exam.save()
return redirect('/teacher/')
else:
return render(request, '500.html', {"error": "Ooops Illegal access"})
models.py
class exam(models.Model):
exam_id = models.CharField(max_length=40,null=True)
date = models.CharField(max_length=40,null=True)
total_grade = models.FloatField(null=True)
author= models.CharField(max_length=40,null=True)
topic = models.CharField(max_length=40,null=True)
course = models.CharField(max_length=40,null=True)
semester_id = models.CharField(max_length=40,null=True)
template.html
<form method="post" action="/teacher/create/exam/">
{% csrf_token %}
<div class="form-group col-md-8">
<label for="topic">Topic</label>
<input type="text" name="topic" class="form-control" id="topic"/>
</div>
<div class="form-group col-md-8">
<label for="grade">Author</label>
<input type="text" name="author" class="form-control" id="author"/>
</div>
<div class="form-group col-md-8">
<label for="date">Date</label>
<input type="date" name="date_now" class="form-control" id="date"/>
</div>
<div class="form-group col-md-8">
<label for="grade">Course</label>
<input type="text" name="course" class="form-control" id="grade"/>
</div>
<div class="form-group col-md-8">
<label for="grade">grade</label>
<input type="number" name="total_grade" class="form-control" id="grade"/>
</div>
<div class="form-group col-md-8">
<label for="cat">Semester </label>
<select name="semester" class="form-control">
<option value="1"> Semester 1</option>
<option value="2"> Semester 2</option>
</select>
</div>
<button type="submit"
class="btn btn-primary m-t-15 waves-effect">Save
</button>
</form>
Я ожидаю, что все поля будут сохранены, но поле автора не будет сохранено