В Django у меня проблемы с получением id из HTML; ошибка: ( Поле "id" ожидало число, но получило )
Когда пользователь выбирает имя переводчика, я хочу получить доступ к выбранному переводчику в Django по id и сохранить информацию в таблице назначений в базе данных, но возникает ошибка, когда он пытается обработать id, ошибка следующая: Field 'id' expected a number but got ''.
HtML-код:
<section style="margin-top: 10%;">
<form method="POST" action="/waite" >
{% csrf_token %}
<select id="translator" name="translator">
{% for i in pro %}
<option value="{{ i.id }}"> {{ i.name }}</option>
{% endfor %}
</select>
<button type="submit">Send request</button>
</form>
</section>
в django view.py:
def waitePage(request):
if request.method == 'POST':
id = request.POST.get("translator")
translator = Manager.objects.get(user_id=id)
translatorName= translator.name #get the name of the translator
translatorID= translator.id #get the id of the translator
current_user = request.user #to get the user
current_userId = current_user.id #for storing user id
customer = Customer.objects.get(id=current_userId) #to get the info of translator
customerID=customer.id
customerName=customer.name
appointment = Appointment.objects.create(
customerName=customerName,
customerID=customerID, translatorID=translatorID, accepted=False,)
appointment.save()
return render(request,'waitePage.html')
Ошибка происходит из:
translator = Manager.objects.get(user_id=id)
Есть ли у вас идеи, как я могу решить эту проблему?
Есть ли у вас идеи, как я могу решить эту проблему?
Вместо этого:
<form method="POST" action="/waite" >
попробуйте вот это:
<form method="POST" action="{% url 'waitePage' %}">
Django использует шаблонизацию Jinja, это может быть причиной того, что вы не получаете id.