Невозможно просмотреть данные, которые я пытаюсь вставить в CRUD
Я делаю CRUD продуктов. Мне трудно просмотреть данные, которые я пытаюсь вставить. Ниже приведены модели, сериализатор (так как я должен использовать сериализаторы вместо форм), функции и htmls
class Products(models.Model):
categories = models.CharField(max_length=15)
sub_categories = models.CharField(max_length=15)
color = models.CharField(max_length=15)
size = models.CharField(max_length=15)
# image = models.ImageField(upload_to = 'media/',width_field=None,height_field=None,null=True)
title = models.CharField(max_length=50)
price = models.CharField(max_length=10)
sku_number = models.CharField(max_length=10)
product_details = models.CharField(max_length=300)
quantity = models.IntegerField(default=0)
isactive = models.BooleanField(default=True)
class POLLSerializer(serializers.ModelSerializer):
class Meta:
model = Products
fields = "__all__"
def show(request):
showall = Products.objects.all()
print(showall)
serializer = POLLSerializer(showall,many=True)
print(serializer.data)
return render(request,'polls/product_list.html',{"data":serializer.data})
def insert(request):
if request.POST == "POST":
print('POST',id)
insert_clothes = {}
insert_clothes['categories']=request.POST.get('categories')
insert_clothes['sub_categories']=request.POST.get('sub_categories')
insert_clothes['color']=request.POST.get('color')
insert_clothes['size']=request.POST.get('size')
# insert_clothes['image']=request.POST.get('image')
insert_clothes['title']=request.POST.get('title')
insert_clothes['price']=request.POST.get('price')
insert_clothes['sku_number']=request.POST.get('sku_number')
insert_clothes['product_details']=request.POST.get('product_details')
insert_clothes['quantity']=request.POST.get('quantity')
form = POLLSerializer(data = insert_clothes)
if form.is_valid():
form.save()
# print('data',form.data)
print(form.errors)
messages.success(request,'Record Updated successfully :)!!!!')
return redirect('polls:show')
else:
print(form.errors)
else:
print('GET',id)
insert_clothes = Products.objects.all()
form = POLLSerializer(data = insert_clothes)
if form.is_valid():
print(form.errrors)
return render(request,'polls/product_insert.html')
ниже вставлен html код
ниже показан html
{% for result in data %}
<tbody>
<tr>
<td><b>{{result.categories}}</b></td>
<td><b>{{result.sub_categories}}</b></td>
<td><b>{{result.color}}</b></td>
<td><b>{{result.size}}</b></td>
<td><b>{{result.title}}</b></td>
<td><b>{{result.price}}</b></td>
<td><b>{{result.sku_number}}</b></td>
<td><b>{{result.product_details}}</b></td>
<td><b>{{result.quantity}}</b></td>
<td style="position: relative;left:50px;">
<a href="/product_edit/{{result.id}}/">
<button class="btn btn-primary">
<i class="fa-solid fa-pen-to-square"></i>
</button>
</a>
</td>
<td>
<a href="/Delete/{{result.id}}/" onclick="return confirm('Are You Sure you want to delete?')">
<button class="btn btn-danger">
<i class="fa-solid fa-trash"></i>
</button>
</a>
</td>
</tr>
</tbody>
{% endfor %}
названия функций и названия входных данных и моделей кажутся правильными, так где же я ошибаюсь?
Я вижу, что вы создаете dict для своего сериализатора. Я уверен, что вам следует использовать экземпляр Product intead.
Создайте экземпляр продукта из данных запроса и затем передайте его serilaizer
product = Product(
categories=request.POST.get('categories'),
... # etc etc
)
form = POLLSerializer(product)
или вы даже можете попробовать:
form = POLLSerializer(request.data)