У меня есть 2 формы (models.forms), которые я вызываю в своей функции, где я пытаюсь создать экземпляр 2 связанных моделей для 1 внешнего ключа (пользователь). Через 2 формы, к которым я хочу применить обновление, но я хочу вызвать объект пользователем. в чем я не прав пожалуйста?
views.py
def update_permisos(request, pk, pk1):
p = get_object_or_404(Permiso, pk=pk)
form = Permiso_update(request.POST, instance=p)
u = get_object_or_404(Users, pk1=pk)
form2 = Users_up(request.POST, instance=u)
if request.method == 'POST' and request.is_ajax():
if form.is_valid():
permiso = form.save(commit=False)
permiso.usuario.d_pendientes = request.POST['d_pendientes']#valores, que van al campo
permiso.usuario.h_pendientes = request.POST['h_pendientes']#valores, que van al campo
permiso.save()
return JsonResponse({'status':'true', 'msg':'Datos procesados correctamente'})#retornando JSon en jsConsole
else:
return JsonResponse({'status':'false', 'msg':'Datos procesados incorrectamente'})#retornando respuesta en jsConsole
else:
form = Permiso_update(instance=p)
form2 = Users_up(instance=u)
asrg = {'form':form, 'form2':form}
return render(request, 'plantillas/permisos_update.html', asrg)
Я пытался сделать с классом "Update View", но я все равно не даю, с чем не так, спасибо за все
views.py
class PermisoUpdateView(UpdateView):
model = Permiso
second_model = Users
template_name = 'plantillas/permisos_update.html'
form_class = Permiso_update
second_form_class = Users_up
def get_context_data(self, **kwargs):
context =super(PermisoUpdateView, self).get_context_data(**kwargs)
pk = self.kwargs.get('pk', 0)
p = self.model.objects.get(id=pk)
u = self.second_model.object.get(id=p.pk)
if 'form' not in context:
context['form'] = self.form_class()
if 'form2' not in context:
context['form2'] = self.second_form_class(instance=u)
context['id'] = pk
return context