python - Formset 对象 - 对象没有属性 'fields'

标签 python django django-forms

获取错误“AddVideoFormFormSet”对象没有属性“fields”。 Blogpost 是视频的外键。我需要允许用户将视频添加到他们的博客文章中,但表单集允许用户将视频添加到任何博客文章中。有什么想法吗?

View .py

@login_required
def addvideo(request):
    user = request.user
    theform = AddVideoForm
    UploadFormSet = formset_factory(theform, extra=1) 
    if request.method == "POST":
        formset = UploadFormSet(request.POST)
        if formset.is_valid() :
            for form in formset.cleaned_data:
                    video = form['video']
                    title = form['title']
                    blogpost = form['blogpost']
                    description = form['description']
                    video = Video(
                        title = title,
                        video= video,
                        blogpost=blogpost,
                        description=description
                        )
                    video.user = request.user
                    video.save()

            return HttpResponseRedirect("/%s/%s/" % (user, blogpost.slug))

    else:
        formset = UploadFormSet()
        formset.fields['blogpost'].queryset = Blogpost.objects.filter(user=user)

    return render_to_response('video/add_video.html', dict(formset=formset), context_instance=RequestContext(request))

表单.py

from django import forms
from main.models import Blogpost
from .models import *

class AddVideoForm(forms.ModelForm):           
    class Meta:
        model   = Video
        fields = ['title', 'blogpost', 'video', 'description']

最佳答案

一个 FormSet 包含多个表单。尝试改变:

formset.fields['blogpost'].queryset = Blogpost.objects.filter(user=user)

通过:

for form in formset:
    form.fields['blogpost'].queryset = Blogpost.objects.filter(user=user)

应该够了。

关于python - Formset 对象 - 对象没有属性 'fields',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25602279/

相关文章:

python - cookiecutter-django 上的数据库设置问题

python - Django 动态小部件/表单字段表示

Django:从 View 中设置字段选择?

python - Django反向查找外键不起作用

python - 连接 Ejabberd 和 Mysql

python - 使用 pandas 处理列中的缺失值

python - 初始化使用 Apache 和 mod_wsgi 运行的 Flask 应用程序

python - 如何更改 django 子类中的 max_length ?

django - 如何使用 CBV 将 PermissionDenied Redirect 提升到另一个页面?

python - 您不认为从系列列表创建 DataFrame 很奇怪吗?