I have a form with Django autocomplete light working and saving fine. However, I also have a link to "Edit"
. I then pre-populate the form with the intial data that they've saved except that Django autocomplete light field's data is not being shown when in edit mode
Here is my edit form method:
@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,
})
Here is my 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)
What I would like to have for the initial data is something like this:
that way they can "x" out the data and replace it.
Any suggestions?
Thanks!