1

最近、アプリに autocomplete-light をインストールしました。

オートコンプリートは、institution というテーブルの「name」というフィールドを介してフィルタリングします。ただし、ビューを介してポストされるのは、名前ではなく、同じオブジェクトの「id」です。

それがなぜなのか誰か知っていますか?

私の見解は次のとおりです。

class UserAccountsUpdate(UpdateView):
    context_object_name = 'variable_used_in `add_user_accounts.html`'
    form_class = AddUserAccountsForm
    template_name = 'add_user_accounts.html'
    success_url = 'add_user_accounts.html'

    def add_user_institution_details(request):
        if request.method == 'POST':
            # create a form instance and populate it with data from the request:
            form = AddUserAccountsForm(request.POST)
            # check whether it's valid:
            if form.is_valid():
                institution_selected = Institution.objects.get(id=name)
                form.save()

        return render(request)

    #get object
    def get_object(self, queryset=None): 
        return self.request.user

フォームは次のとおりです。

class AddUserAccountsForm(forms.ModelForm):

    name = forms.ModelChoiceField(required=True, queryset=Institution.objects.all(), widget=autocomplete_light.ChoiceWidget('InstitutionAutocomplete'), label="")

    class Meta:
        model = Institution
        fields = ('name',)
4

1 に答える 1