Django 中的用户组

User groups in Django

我只是有点迷失了自己,我被困在了这个上。

我有一个模型,它有一个组字段:

class CalendarGroups(models.Model):
    GRP_CALS = (
        ('Grp1', 'Grp1'),
        ('Grp2', 'Grp2'),
        ('Test', 'Test'),
    )
    name = models.CharField(max_length=155, choices=GRP_CALS, blank=True, null=True)

    def __str__(self):
        return self.name

    class Meta:
        ...


class CalendarMaster(models.Model):
    created_by = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
    date_created = models.DateTimeField(auto_now_add=True)
    group = models.ForeignKey(CalendarGroups, on_delete=models.CASCADE)
    date_valid = models.DateTimeField(null=True, blank=True)

我只是想检查一下,如果用户组与日历组匹配 - 将呈现一些上下文。

我的观点:

@login_required(login_url='registration/login')
def add_event(request, pk):
    opp = get_object_or_404(OpportunityList, pk=pk)
    opp_locked = get_object_or_404(Locked, pk=pk)
    user = User.objects.get(username=request.user.username)
    ...
    user_groups = request.user.groups.values_list('name', flat=True)

    events_all = Events.objects.all()
    calendars = Calendar.objects.all()

    form = ...
    if request.method == 'POST':
        form = ...(request.POST or None)

        if form.is_valid():
            event_form = form.save(commit=False)
            event = Events.objects.create(
                event_name=opp_locked.type + '/' + str(opp.oppc_place) + '/' + opp.oppc_client_name,
                event_comment=form.cleaned_data['event_comment'],
                ...
            )
            ...

            event.save()

            messages.success(request, '...' + ...)
            return redirect('...')
    context = {
        'form': form,
        'opp': opp,
        'events': events_all,
        "calendars": calendars,
        "today": datetime.now().date(),
        "user": user,
        "user_groups": user_groups,
    }
    return render(request, '...', context)

我需要这样的东西:

{% if user_group == calendar_group %}

但不知怎么的,我还是搞不定-.-

PS。用户组与CalendarMaster相同

我刚刚添加了另一个字段 linking 这两个表。由于与那两个表没有任何关系,因此不可能link他们任何机会。