Невозможно связать файлы друг с другом в Django
Я работал над одной задачей и застрял. Вот что я пытаюсь сделать - предположим, пользователь вводит номер заказа на сайте (с именем index.html), я хочу проверить, существует ли этот заказ в базе данных. Если да, то он должен перенаправлять пользователя на страницу отгрузки (shipment.html), где доступны все подробности о нем. Я совершенно пуст и не получаю никаких идей. Пожалуйста, помогите.
Edit - При попытке запустить это не возникает никаких ошибок, но ничего не происходит, когда пользователь вводит номер заказа на сайте. Сайт ничего не делает, кроме перезагрузки страницы.
вот что я пробовал делать, все равно не работает! **Здесь исходный код -
index.html код этого раздела -
{% block content %}
{% csrf_token %}
<button type="submit">
Track
</button>
</form>
{% endblock %}
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li {% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
**views.py - **
def shipment(request):
if request.method == 'POST':
order_number = request.POST['order_number']
try:
shipment = Shipment.objects.get(order_number=order_number)
return redirect('shipment')
except Shipment.DoesNotExist:
message = f"Order ID {order_number} does not exist in the database."
else:
message = ""
return render(request, 'index.html', {'message': message})
**models.py - **
class Shipment(models.Model):
member_id = models.CharField(max_length=100)
order_number = models.CharField(max_length=100)
tracking_id = models.CharField(max_length=10)
priority = models.IntegerField()
current_location = models.CharField()
destination = models.CharField(max_length=100)
delivery_date = models.IntegerField()
**urls.py - **
urlpatterns = [path("", views.index, name="index"),
path("", views.login, name="login"),
path('', views.shipment, name='shipment'),
path('index.html', views.index, name='index'),
path('shipment', views.shipment, name='shipment'),]
Я предоставил весь необходимый код, который может помочь. Я надеюсь, что кто-нибудь откликнется и поможет мне.
Попытка:
- Проверьте метод формы POST в файле index.html
(
<form method="post">
) request.POST.get('order_number')