2012-08-30 2 views
1

Я пытаюсь установить гиперссылку на миниатюре моего изображения, которое приведет пользователя к полноразмерному изображению. но я продолжаю получать ошибку.Django - Загрузка полного изображения на отдельной странице

здесь, как это показывает, scribblemedia является ForeignKey строчить

models.py

class ScribbleMedia(models.Model): 
    media = models.FileField(upload_to=get_file_path) 
    def __unicode__(self): 
     return self.media 
    def find_typecheck(self): 
     filename = self.media.name 
     try: 
      ext = filename.split('.')[-1] 
      imgcheck=['jpg','jpeg','png','gif','tiff','bmp'] 
      if ext in imgcheck : 
       chk='image' 
      else: 
       chk='other' 
     except Exception: 
      chk='not supported' 
     return chk 

class Scribble(models.Model): 
    title = models.CharField(max_length=120) 
    body = models.TextField() 
    user = models.ForeignKey(User) 
    media = models.ForeignKey(ScribbleMedia) 
    def __unicode__(self): 
     return u'%s, %s' % (self.user.username, self.media) 

views.py

@login_required 
def image_page(request,pk): 
    img=get_object_or_404(ScribbleMedia,pk=pk) 
    image=img.media 
    variables= RequestContext(request,{ 
    'image': image 
    }) 
    return render_to_response('image_page.html',variables) 

urls.py

(r"^image/(\d+)/$", image_page), 

image_page .html

{% if image %} 
    <img src= {{ image.url }} /> 

Это страница, где миниатюрное изображение доступно

scribble_page.html

{% if scribble.media.media %} 
       {% if scribble.media.find_typecheck == 'image' %} 
        {% thumbnail scribble.media.media.url "700x500" crop="center" as im %} 
          <a href="/image/{{ scribble.media.pk }}/" target="_blank"><img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"></a> 
        {% endthumbnail %} 
       {% else %} 
        do something else 
       {% endif %} 
      {% endif %} 

Он продолжает давать мне следующую ошибку:

TemplateSyntaxError в/изображение/2/ Незакрытый тег 'if'. Ищете один из: elif, else, endif

+0

:) Да, я просто ждал перехода stackoverflow, чтобы я принял ваш ответ. Они хотели, чтобы я подождал 10 минут или что-то еще, прежде чем я его принял. Я не знаю, почему – sankaet

ответ

4

Операторы if в вашем scribble_page.html в порядке. Вам нужно закрыть свой блок if в шаблоне image_page.html ...

{% if image %} 
    <img src="{{ image.url }}" /> <!-- Also note the added quotations... --> 
{% endif %} <!-- This is the line you need to add --> 
+0

Мне очень жаль! Я просто тянул свои волосы за это в течение двух дней, и я не мог понять, какая простая вещь мне не хватало. Я очень ценю это :) спасибо! – sankaet

+0

Не беспокойтесь. Случается со мной тоже. – Dave

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