Итак, я очень старался, получая значения из полей ввода в моей пользовательской форме.
У меня есть URL-адрес, соответствующий форме, и эта форма перенаправляет его в ту же форму снова.
Просмотр URL-адреса формы проверяет, является ли метод запроса Post. Если это так, то я объявляю переменную, равную request.POST
, затем я назначаю эти значения моей модели item_description (). Вот код формы views.py
:
def addItem(request):
if request.method == "POST":
data = request.POST
print(data.__dict__)
item_description(item_name=data.item_name, item_number=data.item_number, item_quantity=data.item_quantity)
else:
HttpResponse("Something went wrong!")
return render(request, 'ims/addItemForm.html')
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>IMS| Add Item</title>
</head>
<body>
<form action="{% url 'Item-addition' %}" method="post">
{% csrf_token %}
<input type="text" name="item_name" placeholder="Enter Item Name">
<input type="text" name="item_number" placeholder="Enter Item Number">
<input type="text" name="item_quantity" placeholder="Enter Item Quantity">
<button type="submit" name="add" value="add">Add Item</button>
</form>
<a href="{% url 'Items-list' %}">See items</a>
</body>
</html>
urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('add_item', views.addItem, name='Item-addition'),
path('items', views.itemsList, name='Items-list'),
]
models.py:
from django.db import models
class item_description(models.Model):
item_name = models.CharField(max_length=200)
item_number = models.CharField(max_length=200)
item_quantity = models.CharField(max_length=200)
def __str__(self):
return self.item_name
Кроме того, я распечатал запрос, который является словарем, но в нем не было никаких значений. Вот печатный словарь запроса: {'_encoding': 'utf-8', '_mutable': False}
.
Вот ошибка, которую я получаю:
Файл "/home/zaid/inventoryManagement/venv/src/ims/views.py", строка 13, в addItem item_description (item_name = data.item_name, item_number = data.item_number, item_quantity = data.item_quantity) AttributeError: у объекта 'QueryDict' нет атрибута 'item_name'
Пожалуйста, помогите мне получить значения из полей ввода.