2011-07-07 10 views
0

私はDjangoを初めて使っていて、初めてのプロジェクトに取り掛かりました。私はcommon.utils.abstact_models.pyにあるモードを持っています:モデルから画像を出力するためのDjangoテンプレートタグ

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 /アップロード/ 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

現在のユーザーの写真を出力フィルタを追加するには、 'request.user.id'を使用して現在のユーザーのIDを取得します。 10写真が必要Djangoのページネーション。あなたのテンプレート

{% for photo in photos.object_list %} 
<img src="{{ photo.photo }}" /> 
{% endfor %} 
で、その後

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)) 

関連する問題