2015-03-20 3 views
0

Новое на django и python, пожалуйста, дайте мне ваши советы на очень простых терминах.Django: нажмите на изображение и откройте его на новой странице

В основном у меня есть сайт для размещения изображений, и я хочу, чтобы иметь возможность нажимать на любое изображение и открывать ему новую страницу с изображением. Как мне это сделать? Я предполагаю, что мне нужно получить URL-адрес изображений, но я не уверен, как это сделать. Это также должно быть автоматическим.

Модели:

class UploadImages(models.Model): 

    category_choice=(('Full','Full Beard'), 
       ('tashe', 'Moustache'), 
       ('goat','Goatee')) 

    image = models.ImageField(upload_to='rate', blank=True) 
    name = models.CharField(max_length=128, default=0) 
    user = models.ForeignKey(User) 
    date = models.DateTimeField(default=now()) 
    #category = models.ForeignKey(Categories) 
    category = models.CharField(max_length=30, choices=category_choice) 
    rating = models.IntegerField(default=0) 

    def __unicode__(self): 
     return self.name 

Просмотров:

def index(request): 

    if request.method == 'GET': 

     #images_list = UploadImages.objects.order_by('-date') 
     images_list = UploadImages.objects.filter(category='tashe') 
     category_list = Category.objects.order_by('-likes')[:5] 
     page_list = Page.objects.order_by('-views')[:5] 

     context_dict = {'images':images_list} 
     response = render(request,'RateMyBeard/index.html', context_dict) 
     return response 

    else: 
     rating = request.POST['submit'] 
     #images_list = UploadImages.objects.order_by('-date') 
     images_list = UploadImages.objects.filter(category='tashe') 
     print rating 
     #print images_list 

     return render(request, 'RateMyBeard/index.html', images_list) 

HTML

{% extends 'base.html' %} 

{% load staticfiles %} <!-- New line --> 



{% block body_block %} 

<p> 'check our images'</p> 

      {% for image in images %} 
       <a href="upload/"> 
       <img src="{{image.image.url}}" alt="{{image.name}}" > 
        </a> 

       {% endfor %} 

    {% csrf_token %} 
{% endblock %} 

ответ

4

Добавьте атрибут target="_blank" вам <a> тег и ссылка будет открыта в новом окне/вкладке:

<a href="{{image.image.url}}" target="_blank"> 
    <img src="{{image.image.url}}" alt="{{image.name}}"> 
</a> 
Смежные вопросы