2017-02-14 4 views
0

私はdjango Webフレームワークを使用しています。私のviews.pyの関数でユーザー名にアクセスする必要があります。私は、データがユーザに属するのか、それとも他人に属するのかに依存して、クラスを割り当てるだけでよいのです。関数内のユーザー名にアクセスする必要があります

リクエストビューは別々ですので、問題のビューは単にカレンダーを表示するためのものです。次のように:

@login_required 
def holiday(request): 
    #i want this later on 
    user = request.user 

    #some stuff to make the calendar 
    cal = HolidayCalendar(my_holidays).formatmonth(year, month) 

    # more stuff 

    context = { 
     "calendar": mark_safe(cal), 
    } 
    return render(request, "tande/calendar.html", context) 

そして、ここでは、私が

class HolidayCalendar(HTMLCalendar): 

    def __init__(self, holiday): 
     super(HolidayCalendar, self).__init__() 
     self.holiday = self.holiday_days(holiday) 

    def formatday(self, day, weekday, user): 
     #do some stuff... 
     if holiday_object: 
      # links to holiday object 
      body.append('<a href="%s"><center>' % holiday_object.get_absolute_url()) 
      body.append(esc(holiday_object.person_id)) 
      body.append('</center></a>') 

      # I NEED THE USER HERE 
      if holiday_object.person_id == user: 
       body.append('<hr class="holiday">') 
      else: 
       #want to have a different hr class 

で、ユーザーにアクセスする必要があるHTMLのカレンダーであり、私はこの機能にユーザーを渡す方法がわからない....私はセッションを試しましたが、リクエストなしでは動作しませんでした。

アイデア?

ありがとうございます!

答えて

1

最も簡単なことは、ユーザーをクラス初期設定に渡すだけです。

def __init__(self, holiday, user): 
    super(HolidayCalendar, self).__init__() 
    self.user = user 
    self.holiday = self.holiday_days(holiday) 

def formatday(self, day, weekday): 
    ... 
    if holiday_object.person_id == self.user: 

とあなたのビューで:

cal = HolidayCalendar(my_holidays, request.user).formatmonth(year, month) 
+0

どのように私はその後、私のformat_dayでこれを使うのですか?私はHolidayオブジェクトのperson_id = user –

+0

かどうかを確認する必要がありますか?最初のスニペットの最後の行に表示されているものではありませんか? –

+0

ああ私self.userを使用するのを忘れていた私はちょうどユーザーを使用していた!ありがとうございました! –

関連する問題