0

私は 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

このテンプレート タグを書く際に何か提案はありますか?

4

1 に答える 1

1

現在のユーザーの写真を出力します。必要に応じてフィルターを追加し、「request.user.id」を使用して現在のユーザーの ID を取得します。show 10 枚の写真には Django のページネーションが必要です。

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 %}
于 2011-07-07T02:16:49.613 に答える