Django オートコンプリート ライトが動作し、正常に保存されるフォームがあります。ただし、へのリンクもあります"Edit"
。次に、保存した初期データをフォームに事前入力しますが、編集モードでは Django オートコンプリート ライト フィールドのデータは表示されません。
これが私の編集フォームメソッドです:
@login_required(login_url='/')
def edit_credits(request, template_name):
user = request.user
credits_profile = get_object_or_404(CreditOptions, user=user)
credits = CreditOptions.objects.filter(user=user)
credits_data = list(credits.values())
if credits_profile.user != user:
return HttpResponseForbidden("Sorry, something here doesn't make sense. Please try again.")
if request.method == 'POST':
formset = OptionFormset(request.POST, instance=credits_profile)
if formset.is_valid():
for form in formset.forms:
instance = form.save(commit=False)
instance.user = user
instance.save()
messages.success(request, "Successfully updated your credits.")
return redirect(urlresolvers.reverse('skills'))
else:
formset = OptionFormset(initial=credits_data)
return render(request, template_name, {
'formset': formset,
})
これが私のforms.pyです
class CreditOptionsForm(forms.ModelForm):
crew_position = forms.ModelChoiceField(CrewPosition.objects.all(),
widget=autocomplete_light.ChoiceWidget('CrewPositionAutocomplete'),
required=False,
help_text='Start typing and it will auto-suggest for you. e.g: PRODUCER')
class Meta:
model = CreditOptions
exclude = ('user',)
OptionFormset = formset_factory(CreditOptionsForm, extra=1)
私が初期データのために持っていたいのは、次のようなものです:
そうすれば、データを「x」して置き換えることができます。
助言がありますか?
ありがとう!