2013-03-26 6 views
1

У меня есть класс под названием Schedule с полем (это верно?) Я установил с помощью admins = models.ManyToManyField(User). Это поле содержит список пользователей, которые я могу выбрать, кратные.Показать информацию на основе пользователей

В представлении для графика я показываю кучу информации. Я хотел бы показать пару дополнительных вещей, основанных на том, включен ли пользователь, который в настоящее время входит в систему, в админах этого просматриваемого расписания.

+0

BTW .. Когда я говорю «Вид», я имею в виду показать его в шаблоне. Не в views.py – Hatter

ответ

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

Perfect. Именно то, что я искал. Спасибо. – Hatter

Смежные вопросы