autocomplete-light return 是什么?
what does the autocomplete-light return?
我最近在我的应用程序中安装了 autocomplete-light。
自动完成过滤通过名为 table 的机构中名为 'name' 的字段。但是,通过视图是post的是同一个对象的'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',)
autocomplete-light 的 ChoiceWidget
默认使用模型的 PrimaryKey 进行 post 请求,在您的情况下是 id
.
因为你没有 post 你的 models.py
我只能假设 name
是 Institution
模型中的 CharField
而你只是在使用此处自动完成以简化名称的添加。
实现这个使用TextWidget
和forms.CharField
:
class AddUserAccountsForm(forms.ModelForm):
name = forms.CharField(
required=True,
widget=autocomplete_light.TextWidget('InstitutionAutocomplete'),
label="",
)
class Meta:
model = Institution
fields = ('name',)
我最近在我的应用程序中安装了 autocomplete-light。
自动完成过滤通过名为 table 的机构中名为 'name' 的字段。但是,通过视图是post的是同一个对象的'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',)
autocomplete-light 的 ChoiceWidget
默认使用模型的 PrimaryKey 进行 post 请求,在您的情况下是 id
.
因为你没有 post 你的 models.py
我只能假设 name
是 Institution
模型中的 CharField
而你只是在使用此处自动完成以简化名称的添加。
实现这个使用TextWidget
和forms.CharField
:
class AddUserAccountsForm(forms.ModelForm):
name = forms.CharField(
required=True,
widget=autocomplete_light.TextWidget('InstitutionAutocomplete'),
label="",
)
class Meta:
model = Institution
fields = ('name',)