2014-09-01 2 views
2

Получение объекта 'AddVideoFormFormSet' ошибки не имеет полей атрибута. Blogpost - это ForeignKey to Video. Мне нужно разрешить пользователям добавлять видео в свой блог, но набор форм позволяет пользователям добавлять видео на любые блог-страницы. Есть предположения?Formset Object - объект не имеет атрибутов 'fields'

views.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)) 

forms.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'] 

ответ

2

FormSet содержит несколько форм. Попробуйте изменить:

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

по:

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

должен быть от чего прийти.

Смежные вопросы