Столкнулся со следующей проблемой. На сайте есть две страницы: 'project_list'(Страница со списком проектов) и 'project_detail'(Страница с детальной информацией о проекте). В каждом проекте есть члены команды(пользователи) с разными ролями в данном конкретном проекте (Например: manager, developer и т. п.). Как вывести в template(в project_detail) что либо в зависимости от роли текущего пользователя в данном проекте. Например, если текущий пользователь в данном конкретном проекте manager показать кнопку, если developer то текстовое сообщение. Модель выглядит следующим образом:
models.pyclass Project(models.Model):
name = models.CharField(max_length=250,)
slug = models.SlugField(max_length=250, unique_for_date='publication_date',)
*Other fields*
def get_absolute_url(self):
return reverse('project:project_detail', args=[self.slug])
class Membership (models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
ROLE_CHOICES = (
('manager', 'Manager'),
('developer', 'Developer'),
('business_analyst', 'Business analyst'),
('system_analysts', 'System analysts'),
)
role = models.CharField(max_length=20, choices=ROLE_CHOICES,)
view.pydef project_detail(request, slug):
project = get_object_or_404(Project, slug=slug, status='public')
return render(request, 'project/project_detail.html', {'project': project,})
urls.pyurlpatterns = [
url(r'^project/(?P<slug>[-\w]+)/$', project_detail, name='project_detail'),
]
detail.html{% block content %}
<h1>{{ project.name }}</h1>
<p>{{ project.description|linebreaks }}</p>
<!--НЕ РАБОТАЕТ-->
{% if request.user.project.membership__role == 'manager' %}
<button>Create</button>
{% endif %}
{%endblock %}