【问题标题】:Create instance of model form with data使用数据创建模型表单的实例
【发布时间】:2015-04-07 19:15:59
【问题描述】:

这是我的代码:

class asignaForm_web(forms.ModelForm):  
    class Meta:  
        model=asignacion
        fields=['usuario']

class asignaForm_view(forms.ModelForm):  
    class Meta:  
        model=asignacion
        fields=['usuario','rol','proyecto']

def asignarRol(request,rolid,proyectoid):
    proyectox=proyecto.objects.get(proyecto_id=proyectoid)
    if request.method=='POST':
        #necesito obtener el usuario
        form=asignaForm_web(request.POST)
        if form.is_valid():
            usuario=form.cleaned_data['usuario']#aca nose si obtener el user o si con esto es suficiente
            #tengo que crear una asignacion con los datos que ya tengo
            """ asignacionx=asignacion(usuario,rolid,proyectoid)
            #no creo que esto funcione
            asignacionx.save()"""
            formx=asignaForm_view(usuario,rolid,proyectoid)
            formx.save()

            #Volver a la vista de scrum redirigiendo al mismo template con las mismas variables

            return render(request,'rol-flujo-para-scrum.html',{'roles':rol.objects.all(), 'flujos':Flujo.objects.all(),'proyecto':proyectox})

    else:
        form= asignaForm_web()
        return render_to_response('asignaRolProyecto.html',{'formulario':form,'proyecto':proyectox},context_instance=RequestContext(request))

这一切都在 views.py 文件中,当我收到 'GET' 请求时,我发送一个带有 1 个字段的 form(asignaFOrm_web) 并在 'POST' 中假装使用该字段作为另一个 form(asignaForm_view) 中数据的值我想保存到数据库中

我不确定这条线

formx=asignaForm_view(usuario,rolid,proyectoid) 

当然行不通,正确的方法是什么?

【问题讨论】:

    标签: django forms view request


    【解决方案1】:

    您需要指定名称,因为表单正在为字段使用 kwargs。

    kwargs = {
        'proyecto': proyecto.objects.get(proyecto_id=proyectoid),
        'usario': usuario=form.cleaned_data['usuario'],
        'rolid': rolid        
    }
    AsignaForm(**kwargs) # you should fix the form name to fit camel case,
    

    AsignaForm(proyecto=proyecto.objects.get(proyecto_id=proyectoid),
               usario=usuario=form.cleaned_data['usuario'],
               rolid=rolid)
    

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 2016-08-07
      相关资源
      最近更新 更多