[英]Django keeps returning local variable 'product' referenced before assignment error
[英]local variable 'product' referenced before assignment ? in Django
我正面临着我找不到解决方案的问题。 到目前为止它正在工作。 但现在显示错误。 不知道如何解决这个问题。 请需要帮助。
视图.py
def add_product(request):
product_form = ProductForm()
product_variant_images_form = ProductVariantsImagesForm()
if request.method == 'POST':
product_form = ProductForm(request.POST)
product_variant_images_form = ProductVariantsImagesForm(request.POST,request.FILES)
if product_form.is_valid():
print(request.POST)
product = product_form.save(commit=False)
vendor = CustomUser.objects.filter(id=request.user.id)
product.vendoruser = vendor[0]
product.save()
vendor = CustomUser.objects.get(id=request.user.id)
product_variant = ProductVariants()
product_variant.product_id = product ###ERROR SHOWING IN THIS LINE
product_variant.vendoruser = vendor
product_variant.price = request.POST.get('price')
product_variant.initial_stock = request.POST.get('initial_stock')
product_variant.weight_of_product = request.POST.get('weight_of_product')
product_variant.save()
return redirect('vendor:inventory_display')
else:
productform = ProductForm()
productvariantsform = ProductVariantsForm()
product_variant_images_form = ProductVariantsImagesForm()
return render(request, 'vendor/add_product.html',
{'productform': productform,'product_variant_images_form':product_variant_images_form,
'productvariantsform': productvariantsform})
它工作正常。多次添加产品后发生错误。 我怎样才能摆脱这个错误。请提供一些帮助,非常感谢。
这是因为如果您没有 go 内部if product_form.is_valid():
,则您的产品变量未设置,您可以在此 if 语句之前设置默认值以修复您的错误。
我希望这会有所帮助。
仅当表单有效时才定义product
变量。 您可以在 if 语句之外为product
设置默认值,也可以将所有涉及数据的代码从 if 语句内部的表单中移出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.