Отображение None вместо данных в виде таблицы
Здесь, выбираю название машины и номер операции, после выбора и сохранения, вместо данных, таких как название машины и номер операции в виде таблицы, не отображается ничего. Пожалуйста, помогите мне решить эту проблему. Я новичок в Django.
urls.py:
urlpatterns = [
path('upload/',views.upload,name='upload'),
path('save',views.save_machine,name='save_machine')
]
views.py:
def upload(request):
machines = Machine.objects.all()
return render(request,'usermaster/upload.html',{'machines':machines})
def save_machine(request):
if request.method == "POST":
machine_name = request.POST.get('machine_name', '')
operation_no = request.POST.get('operation_no')
choiced_machine = Machine.objects.get(machine_name=machine_name, operation_no=operation_no)
machines = Machine.objects.all()
return render(request,'usermaster/upload.html',{'machines':machines,'choiced_machine':choiced_machine})
models.py:
class Machine(models.Model):
machine_name = models.CharField(max_length=200)
operation_no = models.IntegerField(null=False)
def __str__(self):
return self.machine_name
upload.html:
<form action="{% url 'save_machine' %}" method="post">
{% csrf_token %}
<select>
<option>Select Machine Name</option>
{% for machine in machines %}
<option name="machine_name">{{ machine.machine_name }}</option>
{% endfor %}
</select>
<br>
<br>
<select>
<option>Select Operation Number</option>
{% for machine in machines %}
<option name="operation_no">{{ machine.operation_no }}</option>
{% endfor %}
</select>
<br>
<br>
<br>
<input type="submit" value="Save">
</form>
<tr>
<td>{{choiced_machine.machine_name}}</td>
<td>{{choiced_machine.operation_no}}</td>
</tr>
попробуйте это
<form action="{% url 'save_machine' %}" method="post">
{% csrf_token %}
<label for="machinename">Select Machine Name:</label>
<select name="machinename" id="machinename">
{% for machine in machines %}
<option value="{{ machine.machine_name }}">{{ machine.machine_name }}</option>
{% endfor %}
</select>
<br>
<br>
<label for="operationname">Select Operation Number:</label>
<select id="operationname" name="operationname">
{% for machine in machines %}
<option value="{{ machine.operation_no }}">{{ machine.operation_no }}</option>
{% endfor %}
</select>
<br>
<br>
<br>
<input type="submit" value="Save">
</form>
<tr>
<td>{{choiced_machine.machine_name}}</td>
<td>{{choiced_machine.operation_no}}</td>
</tr>
измените свой вид следующим образом.
def save_machine(request):
if request.method == "POST":
machine_name = request.POST.get('machinename', '')
operation_no = request.POST.get('operationname','')
choiced_machine = Machine.objects.get(machine_name=machine_name, operation_no=operation_no)
machines = Machine.objects.all()
return render(request,'usermaster/upload.html',{'machines':machines,'choiced_machine':choiced_machine})
Попробуйте отредактировать вашу форму следующим образом. В настоящее время вы не передаете никаких значений, поэтому возникает внутренняя ошибка сервера, и вы не получаете никакого ответа от сервера, поэтому появляется ошибка None
<select name="machine_name">
<option>Select Machine Name</option>
{% for machine in machines %}
<option value="{{ machine.machine_name }}">{{ machine.machine_name }}</option>
{% endfor %}
</select>
<select name="operation_no">
<option>Select Operation Number</option>
{% for machine in machines %}
<option value="{{machine.operation_no}}">{{ machine.operation_no }}</option>
{% endfor %}
</select>