Display multiple photos to the same post

11 views
Skip to first unread message

Macheciau

unread,
Mar 13, 2020, 1:39:24 PM3/13/20
to Django users
MODELS:

class Activitati(models.Model):
data_publicarii = models.DateField(default = "AAAA-LL-ZZ")
titlu = models.TextField(max_length = 50, blank = False)
text = models.TextField(blank = False)
def get_absolute_url(self):
return reverse('activitati', kwargs={'pk':self.pk})

class Images(models.Model):
post = models.ForeignKey(Activitati, on_delete = models.CASCADE, default = None)
image = models.ImageField(upload_to ='images/', blank = True, null = True)

def __str__ (self):
return self.post.titlu + 'Image'


VIEWS:

def activitati_upload(request):
ImageFormset = modelformset_factory(Images, form = ImageForm, extra = 10)
if request.method == 'POST':
activitateform =ActivitatiForm(request.POST)
formset = ImageFormset (request.POST or None, request.FILES or None, queryset = Images.objects.none())
if activitateform.is_valid() and formset.is_valid():
activitate_form = activitateform.save(commit=False)
activitate_form.save()
for form in formset.cleaned_data:
if form: 
image = form['image']
photo = Images(post = activitate_form, image = image )
photo.save()
return redirect('activitati')
else:
activitateform = ActivitatiForm()
formset = ImageFormset(queryset = Images.objects.none())
return render(request, 'activitati_upload.html', {
'form':activitateform,
'formset':formset
})

def activitati_list(request):
activitati = Activitati.objects.all()
post = Images.objects.all()
ordering = ['-data_publicarii']
return render(request, 'activitati_list.html', {'activitati':activitati,
'post':post})


class ActivitatiDeleteView(LoginRequiredMixin, DeleteView):
model = Activitati
success_url = '/activitati/list'

TEMPLATE:

{%for p in post.images_set.all%}
    <div class="zoom">
      <img src="{{image.image.url}}" class=photo>
    </div>
{%endfor%}


Why doesnt it work ? 
Reply all
Reply to author
Forward
0 new messages