def edit(request, team_id):
team = get_object_or_404(models.Team, pk=team_id)
# Only staff and team's captain can edit team
if not request.user.is_staff and team.captain != request.user:
return HttpResponseNotFound()
if settings.DRAPO_ONLY_STAFF_CAN_EDIT_TEAM_NAME and not request.user.is_staff:
return HttpResponseNotFound()
if request.method == 'POST':
form = forms.TeamForm(data=request.POST)
if form.is_valid():
team_name = form.cleaned_data['name']
with transaction.atomic():
if models.Team.objects.filter(name=team_name).exists():
form.add_error('name', 'Team with same name already exists')
else:
team.name = team_name
team.save()
messages.success(request, 'Team %s saved' % team.name)
return redirect(team)
else:
form = forms.TeamForm(initial={'name': team.name})
return render(request, 'teams/edit.html', {
'team': team,
'form': form,
})
评论列表
文章目录