def policy_rule_edit(request, policy_id):
if request.method == 'POST':
msg = '????'
form = PolicyRuleEditForm(request.POST)
if form.is_valid():
if PolicyRule.objects.filter(rule_id=form.cleaned_data["rule_id"]):
f = form.save(commit=False)
f.rule_id = form.cleaned_data["rule_id"]
f.save()
else:
msg = '?????!'
messages.add_message(request, messages.INFO, msg)
else:
msg = 'ERROR: ' + re.compile(r'<[^>]+>', re.S).sub('', str(form.errors))
messages.add_message(request, messages.ERROR, msg)
return HttpResponseRedirect(reverse('policy:policy_rule_list', args=[policy_id]))
else:
messages.add_message(request, messages.ERROR, '?????')
return HttpResponseRedirect(reverse('policy:policy_rule_list', args=[policy_id]))
python类ERROR的实例源码
def admin_make_inquiry_requests(self, request):
if not request.method == 'POST':
raise PermissionDenied
if not self.has_change_permission(request):
raise PermissionDenied
try:
inquiry = Inquiry.objects.get(pk=request.POST.get('inquiry_pk'))
except Inquiry.DoesNotExist:
raise Http404
try:
make_inquiry_requests_from_file(inquiry, request.FILES['file'])
except ValueError as e:
messages.add_message(request, messages.ERROR, e.message)
return redirect('admin:confrontiv_inquiry_changelist')
return redirect('admin:confrontiv_inquiryrequest_changelist')
def form_valid(self, form):
try:
self.object = form.save()
messages.add_message(self.request, messages.SUCCESS, "Your event has been created.")
return super(ModelFormMixin, self).form_valid(form)
except BaseException, e:
if hasattr(e, '__iter__'):
for exc in e:
messages.add_message(self.request, messages.ERROR, "Error creating your event -- %s" % exc[1][0])
if hasattr(form, exc[0]):
form.add_error(exc[0], exc[1][0])
elif isinstance(e, UnicodeError):
field = e[1][e[1][0:e[3]].rfind('&')+1:e[1][0:e[3]].rfind('=')]
messages.add_message(self.request, messages.ERROR, "Error creating your event -- You had some special characters in your %s field, please remove those and try again." % field)
if field in form.fields:
form.add_error(field, "Please remove special characters and try again.")
return super(EventCreate, self).form_invalid(form)
def form_valid(self, form):
try:
self.object = form.save()
messages.add_message(self.request, messages.SUCCESS, "Your event has been updated.")
return super(ModelFormMixin, self).form_valid(form)
except BaseException, e:
if hasattr(e, '__iter__'):
for exc in e:
messages.add_message(self.request, messages.ERROR, "Error creating your event -- %s" % exc[1][0])
if hasattr(form, exc[0]):
form.add_error(exc[0], exc[1][0])
elif isinstance(e, UnicodeError):
field = e[1][e[1][0:e[3]].rfind('&')+1:e[1][0:e[3]].rfind('=')]
if field in form.fields:
form.add_error(field, "Please remove special characters and try again.")
messages.add_message(self.request, messages.ERROR, "Error updating your event -- You had some special characters in your %s field, please remove those and try again." % field)
return super(EventEdit, self).form_invalid(form)
def delete(request, contest_id, group_id):
if not request.user.has_perm('manage_contest',
Contest.objects.get(pk=contest_id)):
raise PermissionDenied
return HttpResponseRedirect(reverse('contest_details',
args=[contest_id]))
else:
try:
Group.objects.get(pk=group_id).delete()
messages.add_message(request,
messages.SUCCESS,
"Group has been successfully deleted.")
except ObjectDoesNotExist:
messages.add_message(request,
messages.ERROR,
"Group does not exists.")
return HttpResponseRedirect(reverse('contest_details',
args=[contest_id]))
def fetch_task(request, contest_id):
contest = Contest.objects.get(pk=contest_id)
if not request.user.has_perm('manage_contest', contest):
raise PermissionDenied
elif request.method == 'POST':
form = TaskFetchForm(request.POST)
if form.is_valid():
fetched_task = copy_task(form)
fetched_task.contest = contest
if save_task(fetched_task):
messages.add_message(
request,
messages.SUCCESS,
'New task has been added to contest %s.' % contest.name)
add_task_to_groups(contest, fetched_task)
else:
messages.add_message(
request,
messages.ERROR,
'Unable to fetch task %s. Please report this accident'
' to administrator.' % fetched_task)
return HttpResponseRedirect(
reverse('contest_details', args=[contest_id]) + '?current_tab=tasks')
def dispatch(self, request, *args, **kwargs):
# get the game by the id
self.game = Game.get_by_id(kwargs['game_id'])
user = get_user(request)
# check to see if the game is open and available for this user
# if this player is the creator, just return
if self.game.creator == user or self.game.opponent == user:
return super(GameView, self).dispatch(request, *args, **kwargs)
# if there is no opponent and the game is not yet completed,
# set the opponent as this user
if not self.game.opponent and not self.game.completed:
self.game.opponent = user
self.game.save()
return super(GameView, self).dispatch(request, *args, **kwargs)
else:
messages.add_message(request, messages.ERROR, 'Sorry, the selected game is not available.')
return redirect('/lobby/')
def create_users(self, request, queryset):
for author in queryset.all():
if author.user:
continue
try:
author.user = User.objects.create(
username=author.login,
email=author.email,
first_name=author.first_name or '',
last_name=author.last_name or '',
)
author.save()
except Exception as e:
self.message_user(request, _('Failed to create user {}: {}').format(author.login, e), messages.ERROR)
else:
self.message_user(request, _('Successfully created user {}').format(author.login), messages.SUCCESS)
def find_users(self, request, queryset):
for author in queryset.all():
if author.user:
continue
try:
author.user = User.objects.get(username=author.login)
except User.DoesNotExist:
pass
if not author.user:
author.user = User.objects.filter(email=author.email).first()
if not author.user:
author.user = User.objects.filter(first_name=author.first_name, last_name=author.last_name).first()
if author.user:
author.save()
self.message_user(
request,
_('Successfully found user {} for author').format(author.user, author),
messages.SUCCESS)
else:
self.message_user(request, _('Failed to find user for author {}').format(author), messages.ERROR)
def selection_valid(modeladmin, request, queryset):
"""
Verify that the selected registration profiles are ready for action
Args:
modeladmin: the current admin interface
request: request object sent with admin action
queryset: queryset of objects selected
Returns:
boolean, indicating whether selection is valid
"""
# Check whether selection contains profiles of people whose identity has not been confirmed.
if queryset.filter(identity_confirmed=False).exists():
modeladmin.message_user(request,
"One or more users have not confirmed their identity",
level=messages.ERROR)
return False
# Check whether selection contains inactive (dealt with) registration profiles
if queryset.filter(active=False).exists():
modeladmin.message_user(request,
"One or more registration profiles are inactive (already dealt with)",
level=messages.ERROR)
return False
return True
def dispatch(self, request, *args, **kwargs):
"""
If an :model:`EmailChange` object that
has been created by the user is not found, the user will be
redirected to :view:`EmailChangeCreateView`.
"""
try:
object = EmailChange.objects.filter(user=request.user).get()
except EmailChange.DoesNotExist:
msg = _("No email address change request was found. Either an old "
"one has expired or a new one has not been requested.")
messages.add_message(request,
messages.ERROR,
msg,
fail_silently=True)
logger.error('No email address change request found.')
#return HttpResponseRedirect(reverse_lazy('change_email_create'))
object = None
self.object = object
return super(EmailChangeConfirmView, self).dispatch(request,
*args,
**kwargs)
def dispatch(self, request, *args, **kwargs):
"""
If an :model:`EmailChange` object that
has been created by the user is found, the user will be
redirected to :view:`EmailChangeDetailView`.
"""
if EmailChange.objects.filter(user=request.user).count():
msg = _("An email address change request was found. It must"
" be deleted before a new one can be requested.")
messages.add_message(request,
messages.ERROR,
msg,
fail_silently=True)
logger.error('Pending email address change request found.')
object = EmailChange.objects.filter(user=request.user).get()
return HttpResponseRedirect(reverse_lazy('change_email_detail',
args=[object.pk]))
return super(EmailChangeCreateView, self).dispatch(request,
*args,
**kwargs)
def dispatch(self, request, *args, **kwargs):
"""
If an :model:`EmailChange` object that
has been created by the user is not found, the user will be
redirected to :view:`EmailChangeCreateView`.
"""
if not EmailChange.objects.filter(user=request.user).count():
msg = _("No email address change request was found. Either an "
"old one has expired or a new one has not been requested.")
messages.add_message(request,
messages.ERROR,
msg,
fail_silently=True)
logger.error('No email address change request found.')
return HttpResponseRedirect(reverse_lazy('change_email_create'))
return super(EmailChangeDeleteView, self).dispatch(request,
*args,
**kwargs)
def dispatch(self, request, *args, **kwargs):
"""
If an :model:`EmailChange` object that has been created by the user is not
found, the user will be redirected to :view:`EmailChangeCreateView`.
"""
if not EmailChange.objects.filter(user=request.user).count():
msg = _("No email address change request was found. Either an "
"old one has expired or a new one has not been requested.")
messages.add_message(request,
messages.ERROR,
msg,
fail_silently=True)
logger.error('No email address change request found.')
return HttpResponseRedirect(reverse_lazy('change_email_create'))
return super(EmailChangeDetailView, self).dispatch(request,
*args,
**kwargs)
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
success_url = self.get_success_url()
# make sure user is not a referent who cannot quit groups
if self.object.is_referent:
messages.add_message(
request,
messages.ERROR,
_("Les animateurs ne peuvent pas quitter un groupe sans avoir abandonné leur role.")
)
else:
self.object.delete()
messages.add_message(
request,
messages.SUCCESS,
format_html(
_("Vous avez bien quitté le groupe <em>{}</em>"),
self.object.supportgroup.name
)
)
return HttpResponseRedirect(success_url)
def artist_login(request):
if request.method == 'GET':
if request.user.username != '':
return redirect('/musician/artist/'+request.user.username)
else:
return render(request,'musician/login.html')
else:
username = request.POST['username']
password = request.POST['password']
login_user = authenticate(username=username, password=password)
if login_user is not None:
login(request, login_user)
return redirect('/musician/artist/'+username+'/')
else:
messages.add_message(request, messages.ERROR, "Login Invalid, Please Try Again")
return redirect('/musician/login')
# register handler
def register(request):
if request.method == 'GET':
return render(request,'musician/register.html')
else:
try:
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
user = User.objects.create_user(username, email, password)
user.save()
login_user = authenticate(username=username, password=password)
login(request, login_user)
return redirect('/musician/artist/'+username+'/')
except Exception as e:
messages.add_message(request, messages.ERROR, "Registration Failed: Duplicated Username")
logging.exception("message")
return redirect('/musician/register/')
# logout user
def statistics(request, artist_id, music_id):
if request.user.is_authenticated and request.user.username == artist_id:
context = {}
context['artist'] = artist_id
context['music_name'] = Music.objects.get(id=music_id).title
today = datetime.now()
stats = {}
nodata = 1
print music_id
for i in range(1,8):
target_day = today-timedelta(i)
target_day = target_day.strftime("%Y-%m-%d")
print target_day
(date, count, rank) = backend_client.run_request(int(music_id),target_day)
if rank != 0:
nodata = 0;
stats[i] = rank
if nodata == 1:
stats[0] = 0
context['rank'] = stats;
return render(request,'musician/statistics.html', context)
else:
messages.add_message(request, messages.ERROR, "No Access to This Page")
logging.exception("message")
return redirect('/musician/')
def do(self, action_context, view, email, *args, **kwargs):
user = action_context.extra_context.get('user')
if not user:
msg = _("We haven't found any account with email {0}").format(email)
messages.add_message(action_context.request, messages.ERROR, msg)
logger.info(("Recover password not sent to {0} (email not found)"
).format(email))
# Set the initial form with the next value
uri = get_redirect_url(action_context.request) # Get the uri from the url first
if not uri:
form = action_context.extra_context["form"]
# Try second time from the form
uri = form.get_redirect_uri()
form = view.get_form_class()(initial={
'redirect_uri': uri})
action_context.response = view.render_to_response(
view.get_context_data(form=form))
action_context.break_chain = True
return super().do(action_context, view, email, *args, **kwargs)
def do(self, action_context, view, impersonate_user, *args, **kwargs):
user = action_context.extra_context.get('user')
if user and not action_context.extra_context.get('invalid_jwt_version'):
if not user.project_permissions.filter(
key=settings.APP_PERMISSION_KEYS['impersonate']).exists():
logger.warning("User '{0}' doesn't have permission to impersonate user '{1}'".format(
user.id,
impersonate_user.id))
action_context.break_chain = True
# Add an error message
messages.add_message(
action_context.request,
messages.ERROR,
_("You don't have impersonation permission"))
return super().do(action_context, view, impersonate_user, *args, **kwargs)