로그인 한 사용자의 블로그 게시물 만 표시하도록 formset을 필터링하는 방법을 알아낼 수 없습니다. 양식은 훌륭하게 렌더링되지만 모든 사용자가 블로그 포스트를 소유 한 사람과 관계없이 모든 블로그 포스트에 사진을 지정할 수 있습니다. blogposts의 옵션을 로그인 한 사용자 만 필터링하려면 어떻게합니까?Django Formset은 사용자 객체로 필터링하지 않습니다.
views.py
@login_required
def addimage(request):
user = request.user
blogposts = Blogpost.objects.filter(user=user)
print blogposts
imageformset = modelformset_factory(Image, AddImageForm,extra=1)
if request.method == "POST":
formset = imageformset(request.POST, request.FILES)
if formset.is_valid() :
for form in formset.cleaned_data:
image = form['image']
title = form['title']
blogpost = form['blogpost']
description = form['description']
photo = Image(
title = title,
image= image,
blogpost=blogpost,
description=description,
)
photo.user = request.user
photo.save()
messages.success(request, 'We did it. Pictures are on the interwebs!')
return HttpResponseRedirect("/%s/%s/" % (user, blogpost.slug))
else:
formset = imageformset()
return render_to_response('photos/add_photos.html', {
'formset' : formset,
'blogpost' : blogposts,
},
context_instance=RequestContext(request))
forms.py
from django import forms
from .models import *
class AddImageForm(forms.ModelForm):
class Meta:
model = Image
fields = ('image', 'title', 'blogpost', 'description')
Add_photos.html
{% extends "base.html" %}
{% load static %}
{% block content %}
<div>
<form action="" method="POST" enctype="multipart/form-data">{% csrf_token %}
<div id="submit"><input id="submit-btn" type="submit" value="Save"></div>
{{ formset.management_form }}
{{ formset.as_p }}
<input type="submit" value="Save">
</form>
</div>
{% endblock %}
,174,
오류 가져 오기 "AddImageFormFormSet 개체에 특성 '필드가 없습니다.' '모든 의견? – baconck
'fields'는 formset이 아니라'form'에 있습니다. 양식을 반복하고 있습니까? 'form [ 'fields']'에 액세스해야 할 수도 있습니다. –
이것은 나를 위해 일했다 : formset = UploadFormSet() form.fields [ 'blogpost']. 양식에 대한 양식에 대한 queryset = Blogpost.objects.filter (사용자 = 사용자) – baconck