def variant_edit(request, product_pk, variant_pk=None):
product = get_object_or_404(
Product.objects.all(), pk=product_pk)
if variant_pk:
variant = get_object_or_404(product.variants.all(), pk=variant_pk)
else:
variant = ProductVariant(product=product)
form = forms.ProductVariantForm(request.POST or None, instance=variant)
attribute_form = forms.VariantAttributeForm(
request.POST or None, instance=variant)
if all([form.is_valid(), attribute_form.is_valid()]):
form.save()
attribute_form.save()
msg = pgettext_lazy(
'Dashboard message', 'Saved variant %s') % variant.name
messages.success(request, msg)
return redirect(
'dashboard:variant-details', product_pk=product.pk,
variant_pk=variant.pk)
ctx = {'attribute_form': attribute_form, 'form': form, 'product': product,
'variant': variant}
return TemplateResponse(
request,
'dashboard/product/product_variant/form.html',
ctx)
评论列表
文章目录