gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 03:42:32 25 4
gpt4 key购买 nike

获取错误“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com