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他们任何机会。
我只是有点迷失了自己,我被困在了这个上。
我有一个模型,它有一个组字段:
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他们任何机会。