Мне нужно знать, возможно ли объединить два разрешения в проекте Python django? Мой босс хочет, чтобы я объединил разрешения clock_in и clock_out в одно с именем clock_in_out. Я также хотел бы сделать одно разрешение, чтобы иметь возможность включать в себя добавление, изменение, просмотр и удаление проекта вместо того, чтобы иметь отдельные для назначения администраторам.
Я попытался добавить метаданные в классы модели и добавить @permission_required ('manager.manage_project') до применения соответствующих определений в файле views.py. Я новичок в Python, и поэтому дайте мне знать, если это возможно. Я запустил Python3 manage.py makemigrations и мигрировал, и он все еще не работал так, как должен.
models.py
class Entry(models.Model):
#uses EntryManager for querysets
objects = EntryManager()
no_join = models.Manager()
class Meta:
db_table = 'timepiece_entry' # Using legacy table name
ordering = ('-start_time',)
verbose_name_plural = 'entries'
permissions = (
('can_clock_in_out', 'Can use Pendulum to clock in and out'),
)
views.py
@permission_required('entries.can_clock_in_out')
@transaction.atomic
def clock_in(request):
"""For clocking the user into a project."""
user = request.user
# Lock the active entry for the duration of this transaction, to prevent
# creating multiple active entries.
active_entry = utils.get_active_entry(user, select_for_update=True)
initial = dict([(k, v) for k, v in request.GET.items()])
data = request.POST or None
form = ClockInForm(data, initial=initial, user=user, active=active_entry)
if form.is_valid():
entry = form.save()
message = 'You have clocked into {0}.'.format(
entry.project)
messages.info(request, message)
return HttpResponseRedirect(reverse('dashboard'))
return render(request, 'timepiece/entry/clock_in.html', {
'form': form,
'active': active_entry,
})
Я хочу иметь возможность просто назначить этому пользователю can_clock_in_out и заставить его работать.