Django получить идентификаторы поля ввода modelformset_factory в html шаблоне - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь получить идентификаторы ввода для моих форм в шаблоне HTML, чтобы написать код javascript для запуска поля ввода при нажатии на элемент div. Я пытаюсь напечатать идентификатор каждого поля ввода в шаблоне, однако сейчас мой код ничего не показывает на странице:

в моем ** шаблоне У меня есть: **

    {% for form in formset %}
        {% for field in form.fields %}
            {{ field.auto_id }}
        {% endfor %}
    {% endfor %} 

И это мое мнение:

@login_required
def post_create(request):
    data = dict()
    ImageFormset = modelformset_factory(Images,form=ImageForm,extra=4)
    if request.method == 'POST':
        form = PostForm(request.POST)
        formset = ImageFormset(request.POST or None, request.FILES or None)
        if form.is_valid():    
            post = form.save(False)
            post.author = request.user
            #post.likes = None
            post.save()
            for f in formset:
                try:
                    i = Images(posts=post, image=f.cleaned_data['image'])
                    i.save()
                except Exception as e:
                    break
            data['form_is_valid'] = True
            posts = Post.objects.all()
            posts = Post.objects.order_by('-last_edited')
            data['posts'] = render_to_string('home/posts/home_post.html',{'posts':posts},request=request)
        else:
            data['form_is_valid'] = False
    else:
        form = PostForm  
        formset = ImageFormset(queryset=Images.objects.none())     
    context = {
    'form':form,
    'formset':formset,
    }
    data['html_form'] = render_to_string('home/posts/post_create.html',context,request=request)
    return JsonResponse(data) 

Мне было интересно, если это лучший способ сделать это, однако, есть ли способ получить идентификатор поля динамически? или я должен написать отдельные функции для каждого div, которые будут вызывать поле ввода c?

Заранее спасибо!

1 Ответ

0 голосов
/ 02 апреля 2020

решено:

поэтому, очевидно, я использовал неправильный l oop идентификатор моего поля может быть получен с помощью:

    {% for form in formset %}
        {{ form.image.auto_id }}
    {% endfor %}
...