2013-03-26 84 views
1

我有一個名爲Schedule的字段(此字段是否正確?)我設置了使用 admins = models.ManyToManyField(User)。該字段包含我可以選擇倍數的用戶列表。根據用戶顯示信息

在時間表的視圖中,我顯示了一堆信息。我想根據當前登錄的用戶是否包含在正在查看的該計劃的管理員中顯示一些其他內容。

+0

順便說一句。當我說查看,我的意思是顯示它在模板中。不在views.py – Hatter 2013-03-26 02:53:43

回答

3

根據Django哲學,您應該在模板中的視圖和表示邏輯中擁有業務邏輯。因此,如果記錄的用戶在管理員之間進行計算,應該在視圖中完成,如果用戶是,則應該在模板中確定顯示的內容。你可以通過以下方式實現:

# views.py 
def schedule(request, id): 
    schedule = get_object_or_404(Schedule, pk=id) 
    if request.user.is_authenticated(): 
     is_admin = schedule.admins.filter(pk=schedule.pk).exists() 
    else: 
     is_admin = False 
    data = { 
     'schedule': schedule, 
     'is_admin': is_admin, 
    } 
    return render_to_response('template.html', data) 

# template.html 
{% if is_admin %} 
    <p>You are an admin of the schedule!</p> 
{% else %} 
    <p>Sorry. You are not an admin of the schedule</p> 
{% endif %} 
+0

完美。正是我在找什麼。謝謝。 – Hatter 2013-03-28 04:18:45