Я пытаюсь использовать одно и то же представление для создания формы и обновления любого объекта.
Мой код такой же, как и ниже, я пытался во многих отношениях ничего не работать, так как я исключаю shof из формы и добавляю еепосле form.is_valid () это приводит к путанице.Если я обновляю это создает новый объект.У меня есть два URL, один без ql (создать новый) и один с ql (обновить существующий), у меня есть класс vdview, который предоставляет v.shof, который необходимо применить в f.shop в форме.пожалуйста, помогите исправить это,
@csrf_protect
@login_required
def addmenu(request, qs, ql=None):
v = vdview(request, qs)
ctgobj = get_object_or_404(v.shopcategs, pk=ql) if ql else None # ctgobj = ShopCtg(shop=v.shof)
if ql:
form = ShopCtgForm(instance=ctgobj) # Tried ShopCtgForm(instance=ctgobj, data=request.POST)
else:
form = ShopCtgForm(data= request.POST)
if request.method == 'POST':
if form.is_valid():
f=form.save(commit=False)
f.shop = v.shof
f.save()
#form.save_m2m()
return redirect('vendor-shop', qs) #thing='%s added' %f.name)
else:
pass
#else:
# form = ShopCtgForm()
return render(request,'vendorshop.html', {'shop':v.shof, 'shopcategs':v.shopcategs, 'form': form,
'heading':'Create New Category', 'createcateg': 'createcateg', 'pkaddmenupk':'y' } )