Запрос, соответствующий продукту, не существует
когда я пытаюсь добавить товар к поставщику он вызывает метод POST когда вызывается этот *view он выдает ошибку Product matching query does not exist. если нужны еще какие нибудь файлы подскажите я надеюсь кто нибудь исправит эту проблему.
class AddBaseproductToStore(AdminOnlyMixin, generic.TemplateView):
template_name = 'aldobi-admin/add-product-to-store.html'
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context
context = super().get_context_data(**kwargs)
context['prod_id'] = self.kwargs['pk']
context['vendor'] = self.kwargs['vendor']
return context
def get(self, request, *args, **kwargs):
product = BaseProduct.objects.get(id=self.kwargs['pk'])
vendor_id = self.kwargs['vendor']
base_cat = BaseCategory.objects.all()
return render(request, self.template_name, {"product": product, "base_cat": base_cat, 'vendor': vendor_id})
это продолжение приведенного выше кода
def post(self, request, *args, **kwargs):
base_product = BaseProduct.objects.get(id=self.kwargs['pk'])
vendor_id = self.kwargs['vendor']
base_category = BaseCategory.objects.get(id=request.POST.get('category'))
try:
p = Product.objects.get(base_product=base_product,
category=Category.objects.get(vendor_id=vendor_id, base_category=base_category))
except AttributeError:
product = Product()
product.category = Category.objects.get(vendor_id=vendor_id, base_category=base_category)
product.base_product = base_product
product.name = request.POST.get('name')
product.ar_name = request.POST.get('ar_name')
product.sort_order = request.POST.get('sort-order')
product.dryclean = request.POST.get('dryclean', '') == 'on'
product.normal_dryclean_price = request.POST.get('dryclean_price')
product.normal_dryclean_buffer_time = request.POST.get('dryclean_buffer')
product.wash_and_pressing = request.POST.get('wash-press', '') == 'on'
product.normal_wash_and_pressing_price = request.POST.get('wash-press-price')
product.normal_wash_and_pressing_buffer_time = request.POST.get('wash-press-buffer')
product.pressing = request.POST.get('press', '') == 'on'
product.normal_pressing_price = request.POST.get('press-price')
product.normal_pressing_buffer_time = request.POST.get('press-buffer')
product.express_dryclean = request.POST.get('exp-dryclean', '') == 'on'
product.express_dryclean_price = request.POST.get('exp-dryclean-price')
product.express_dryclean_buffer_time = request.POST.get('exp-dryclean-buffer')
product.express_wash_and_pressing = request.POST.get('exp-wash-press', '') == 'on'
product.express_wash_and_pressing_price = request.POST.get('exp-wash-press-price')
product.express_wash_and_pressing_buffer_time = request.POST.get('exp-wash-press-buffer')
product.express_pressing = request.POST.get('exp-press', '') == 'on'
product.express_pressing_price = request.POST.get('exp-press-price')
product.express_pressing_buffer_time = request.POST.get('exp-press-buffer')
product.save()
if product.express_pressing == True or product.express_dryclean == True or product.express_wash_and_pressing_price == True:
product.express = True
else:
product.express = False
product.save()
return redirect('admins:vendor_items', pk=vendor_id)
вот какая ошибка появляется
File "C:\Users\aminu\OneDrive\Documents\aldobi confidentials\aldobi work\laundry\admins\views.py", line 2827, in post
p = Product.objects.get(base_product=base_product,
File "C:\Users\aminu\OneDrive\Documents\aldobi confidentials\aldobi work\aldobi_env_39\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\aminu\OneDrive\Documents\aldobi confidentials\aldobi work\aldobi_env_39\lib\site-packages\django\db\models\query.py", line 429, in get
raise self.model.DoesNotExist(
vendor.models.Product.DoesNotExist: Product matching query does not exist.
[27/Apr/2022 12:37:46] "POST /add-baseproduct-tostore/41/170/ HTTP/1.1" 500 106828
Если .get() не находит подходящего объекта, то поднимается ObjectDoesNotExist из django.core.exceptions, а не AttributeError