3

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」して置き換えることができます。

助言がありますか?

ありがとう!

4

0 に答える 0