Django пользовательская форма не загружается в modelformset_factory в шаблоне html - PullRequest
1 голос
/ 01 апреля 2020

Я пытаюсь использовать мою пользовательскую форму в modelformset_factory, но когда я устанавливаю атрибут 'form' в modelformset_factory в свою пользовательскую форму, ничего не отображается. Я просмотрел документацию и не могу найти причину, по которой моя пользовательская форма не загружается.

это представление:

@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) 

это моя пользовательская форма:

class ImageForm(forms.ModelForm):
    image = forms.FileField(
        label='',
        widget = forms.FileInput(
            attrs={
                'style':'display: none;',
                'class':'form-control',
                'required': False})) 
    class Meta:
        model = Images
        fields = ('image', )

И это то, что я использую для загрузки набора форм:

{{ formset }}

Оцените всю помощь заранее!

1 Ответ

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

Я решил проблему сам, проблема была в том, что я использовал отображение: ни один в моей форме! я просто удалил, что теперь моя форма:

class ImageForm(forms.ModelForm):
    image = forms.FileField(
        label='',
        widget = forms.FileInput(
            attrs={
                'class':'form-control',
                'required': False})) 
    class Meta:
        model = Images
        fields = ('image', )
...