Тег шаблона Django для вывода изображений из модели - PullRequest
0 голосов
/ 07 июля 2011

Я новичок в Django и только начал работать над моим первым проектом. у меня есть режим, расположенный на common.utils.abstact_models.py:

class PhotoModel(BaseModel):
  submitted_by = models.ForeignKey(User)
  caption = models.TextField(blank=True, null=True)
  photo = FileBrowseField('Image (Initial Directory)', max_length=100, directory='uploads/')
  is_default = models.BooleanField(default=False)

class Meta
  abstract = True

может быть, это тоже будет полезно. у меня есть другая модель:

class Photo(BaseModel):
  event = models.ForeignKey(Event)
  photo = models.ImageField(max_length=255, upload_to="uploads/event_photos")
  is_featured = models.BooleanField(default=False)

У меня есть фотографии, загруженные в MEDIA_URL / uploads / event_photos

Мне нужно написать тег шаблона для вывода фотографий текущего пользователя. Скажем 10 фото. У меня почти нет кода, я начал с некоторых.

from django import template
from common.utils.abstract_models.py import PhotoModel

register = template.Library()

def do_random_photos(parser, token):
  myobjects = PhotoModel.objects.all()
  return {'objects': myobjects}

class RandomPhotosNode(template.Node):
  def __init__(self, context):
  self.

def render(self, context):
  return

У вас есть предложения по написанию этого тега шаблона?

1 Ответ

1 голос
/ 07 июля 2011

вывод фотографий текущего пользователя . Вам нужно добавить фильтр, используйте 'request.user.id', чтобы получить идентификатор текущего пользователя. показать 10 фотографий нужна Django's Pagination.

def show_photos(request):
  photos = PhotoModel.objects.filter(submitted_by=request.user.id)
  paginator = Paginator(photos,9)
  try:
    page = int(request.GET.get('page',1))
  except ValueError:
    page = 1
  try:
    photos = paginator.page(page)
  except:
    photos = paginator.page(paginator.num_pages)
  ctx = {'photos':photos}
  return render_to_response('a templates', ctx, context_instance = RequestContext(request))

тогда в твоих шаблонах

{% for photo in photos.object_list %}
<img src="{{ photo.photo }}" />
{% endfor %}
...