使用modelform和筛选器查询编辑注册表时出现问题

2024-09-25 06:29:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在模型表单中使用筛选选择编辑注册表时遇到问题。注册它可以完美地工作,但当我试图编辑它时会产生错误。有人能帮我吗

我认为问题在于我表达了这句话:


form = PostoCapacitacaoForm(request.POST or None, 
session_om=request.session.get('id_organizacao'), 
instance=postocapacitacao, )


# views.py

def EditarPostoCapacitacaoView(request, pk, template_name='config_geral_posto_capacitacao/update.html'):
    postocapacitacao = PostoCapacitacao.objects.get(pk=pk)

    form = PostoCapacitacaoForm(request.POST or None, session_om=request.session.get('id_organizacao'), instance=postocapacitacao, )

    if form.is_valid():
        temp = form.save(commit=False)
        temp.author = request.user  # add the logged in user, as the
        temp.save()
        return redirect('listar_postocapacitacao_url')
    return render(request, template_name, {'form': form})





# form.py
class PostoCapacitacaoForm(ModelForm):
    def __init__(self, *args, **kwargs):
        session_om = kwargs.pop('session_om')

        super(PostoCapacitacaoCadastrarForm, self).__init__(*args, **kwargs)
        self.fields['cd_posto_diponivel'].queryset = self.fields['cd_posto_diponivel'].queryset = PostoDisponivel.objects.filter(
            cd_organograma__cd_organizacao=session_om)

    class Meta:
        model = PostoCapacitacao
        fields = ['cd_posto_diponivel', 'cd_capacitacao', 'cd_classificacao']
        # exclude = ('cd_organizacao',)
        widgets = {
            'cd_posto_diponivel': Select(attrs={'class': 'form-control', 'required': 'True'}),
            'cd_capacitacao': Select(attrs={'class': 'form-control', 'required': 'True'}),
            'cd_classificacao': Select(attrs={'class': 'form-control', 'required': 'True'}),
        }

        labels = {
            'cd_posto_diponivel': ('Setor'),
            'cd_capacitacao': ('Código da Capacitação'),
            'cd_classificacao': ('Código Classificação'),
        }


Tags: selfformgetrequestsessioncdclasspk