Попытка сохранить время ввода данных в базу данных mysql с помощью django
Я пытаюсь сохранить данные из HTML ввода в базу данных MySql, используя Django. Другие формы, которые я создал, работают. Я пришел к выводу, что это не работает из-за ввода времени. Я преобразовал его в тип datettime python, что должно заставить его работать, но он все равно не сохраняется. Проверьте, пожалуйста, мой код и посмотрите, что может быть причиной того, что он не сохраняется.
файлviews.py:
def employee_view(request):
table = employeeModel.objects.all()
context = {"table": table}
if request.method == "POST":
postCopy = request.POST.copy() # to make it mutable
postCopy['barberStartTime'] = datetime.strptime('15/05/22 ' + postCopy['barberStartTime'], '%d/%m/%y %H:%M').time()
postCopy['barberEndTime'] = datetime.strptime('15/05/22 ' + postCopy['barberEndTime'], '%d/%m/%y %H:%M').time()
request.POST = postCopy
form = employeeForm(request.POST or NONE)
if form.is_valid():
form.save()
return render(request, 'accounts/employee.html', context)
return render(request, 'accounts/employee.html', context)
python employeeModel:
class employeeModel(models.Model):
barberName = models.CharField(max_length=50)
barber_workplace = models.ForeignKey(workplacesModel, on_delete=models.CASCADE)
barberStartTime = models.TimeField()
barberEndTime = models.TimeField()
class barbers:
db_table = "home_employeemodel"
python employeeForm:
class employeeForm(forms.ModelForm):
barberStartTime = forms.TimeField(widget=forms.TimeInput(format='%H:%M:%S'))
barberEndTime = forms.TimeField(widget=forms.TimeInput(format='%H:%M:%S'))
class Meta:
model = employeeModel
fields = ["barberName", "barber_workplace", "barberStartTime", "barberEndTime"]
html форма ввода: (она является частью таблицы - причина для тегов tr/td):
<tr>
<form method="POST">{% csrf_token %}
<td class="id-td" scope="row">---</td>
<td class="barberName-td"><input type="text" name="barberName" placeholder="Meno"/></td>
<td class="barberWorkplace-td"><input type="number" name="barberWorkplace" placeholder="Mesto"/></td>
<td class="barberStartTime-td"><input type="time" name="barberStartTime"/></td>
<td class="barberEndTime-td"><input type="time" name="barberEndTime"/></td>
<td><button class="btn btn-secondary">Pridať</button></td>
<form>
</tr>
Наконец-то я понял, где была ошибка. Проблема заключалась в неправильном названии входных данных для рабочего места парикмахера. Он был назван barberWorkplace, тогда как должен был быть назван barber_workplace.