Могу действительно использовать справку, чтобы выяснить, что я неправильно понимаю в следующем: я использую встроенный оператор "in", чтобы проверить, находится ли пользователь (стандартная модель пользователя) в наборе запросов членов Совета.
Это модель члена Правления:
class BoardMembers(models.Model):
board = models.ForeignKey(Board, related_name="memberships", blank=True)
user = models.ForeignKey(User,related_name='user_boards', blank=True)
member_role = models.CharField(choices=MEMBER_ROLES, max_length=100, blank=True)
def __str__(self):
return self.user.username
Вот представление, которое я использую:
class ViewBoard(SelectRelatedMixin, generic.DetailView):
model = models.Board
select_related = ("user",)
template_name = 'board/view_board.html'
def get_context_data(self, **kwargs):
context = super(ViewBoard, self).get_context_data(**kwargs)
context['boardmembers_list'] = BoardMembers.objects.filter(board__slug=self.kwargs['slug'])
return context
И это HTML-часть, с которой я борюсь:
{% if user in boardmembers_list %}
<h1>HEY, {{ user.username }}, YOU'RE ALREADY A MEMBER!</h1>
{% else %}
<a class="btn btn-primary" href="{% url 'board:join_board' slug=board.slug pk=board.pk %}">Join this Board</a>
{% endif %}
Я проверил, могут ли объекты по отдельности быть извлечены в шаблоне, и правильно ли отображаются и пользователь, и boardmembers_list.
Из документов itПохоже, это должно быть относительно простым делом.Может кто-нибудь сказать мне, где я иду не так или что я неправильно понимаю, как работают эти операторы?