Получение данных из выпадающего списка и отображение их в виде таблицы

Я новичок в Django. Я хочу получить данные из выпадающего списка, при нажатии на кнопку сохранения, данные должны отображаться в виде таблицы. Пожалуйста, помогите мне решить эту проблему. Пожалуйста.

urls.py:

urlpatterns = [
path('',views.upload,name='upload'),
]

views.py:

def upload(request):
    machines = Machine.objects.all()
    return render(request,'usermaster/upload.html',{'machines':machines})

models.py:

class Machine(models.Model):
    machine_name = models.CharField(max_length=200)
    operation_no = models.IntegerField()

    def __str__(self):
        return self.machine_name

upload.html:

<form action="" method="post">
    {% csrf_token %}
    <select>
        <option>Select Machine Name</option>
        {% for machine in machines %}
        <option>{{ machine.machine_name }}</option>
        {% endfor %}
    </select>
    <br>
    <br>
    
    <select>
        <option>Select Operation Number</option>
        {% for machine in machines %}
        <option>{{ machine.operation_no }}</option>
        {% endfor %}
        </select>
    <br>
    <br>
    <br>
    <input type="submit" value="Save">
</form>

<tr>
    <td>{{machine.machine_name}}</td>
    <td>{{machine.operation_no}}</td>
</tr>

В вашем views.py:

def save_machine(request):
   if request.method == "POST":
      machine_name = request.POST['machine_name']
      operation_no = request.POST['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})
      

В вашем urls.py:

urlpatterns = [
path('save',views.save_machine,name='save_machine'),
#your other url paths
]

   

В вашем 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>

Надеюсь, это сработает

Вернуться на верх