Django сохранить много-много форм информации - автозаполнение - PullRequest
0 голосов
/ 22 января 2020

У меня возникли проблемы при попытке сохранить много-много полей в форме, я получил ошибку "объект не повторяем" в одном поле, которое имеет отношение ко многим-многим, я не уверен, что это виджет автозаполнения modelselect2, но он Также не позволяйте мне выбрать более 1 значение (в админке работает нормально)

forms.py

class Urbaniz_Form(forms.ModelForm):
    roles = forms.ModelChoiceField(
        queryset=RolesSII.objects.all(),
        widget=autocomplete.ModelSelect2(url='roles-autocomplete')
    )

    class Meta():
        model = SubdUrb_Solicitud
        exclude = []
        widgets = {
            'roles': autocomplete.ModelSelect2(),
        }
    def limpiar(self):
        cd = self.cleaned_data

views.py

@login_required
def crear_urb(request):
    p_form = Urbaniz_Form()
    if request.method == 'POST':
        p_form = Urbaniz_Form(request.POST, request.FILES)
        if p_form.is_valid():
            #VALIDACION DE INFO limpiar() - is_cleaned
            p_form.limpiar()
            p_form.save()
            p_form.save_m2m()
            messages.success(request, f'Registro de Urbanización creado con éxito')
            return dom_home(request)
        else:
           return render(request, 'b_dom/crear_urb.html', {'form':p_form,
                            'error':p_form.errors})
    else:
        return render(request,'b_dom/crear_urb.html', {'form':p_form})



class RolAutocomplete(autocomplete.Select2QuerySetView):
    def get_queryset(self):
        qs = RolesSII.objects.all()
        if self.q:
            qs = qs.filter(rol__istartswith=self.q)
        return qs

Спасибо !!

...