Создать форму и обновить, используя тот же вид в Django - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь использовать одно и то же представление для создания формы и обновления любого объекта.

Мой код такой же, как и ниже, я пытался во многих отношениях ничего не работать, так как я исключаю 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'    }    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...