def form_valid(self, form):
self.object = form.save(commit=False)
if self.object.coin < 0 and self.object.user.coin + self.object.coin < 0:
self.object.coin = -self.object.user.coin
self.object.admin = self.request.user
self.object.user.coin += self.object.coin
self.object.rest = self.object.user.coin
self.object.user.save()
self.object.save()
return HttpResponseRedirect(self.get_success_url())
python类HttpResponseRedirect()的实例源码
def logout(request):
auth_logout(request)
return HttpResponseRedirect(request.META.get('HTTP_REFERER','/'))
def updateImage(request):
if request.method == 'POST':
form = ChangeUserImageForm(request.POST,request.FILES)
if form.is_valid():
image = form.cleaned_data['image']
user = request.user
user.image = image
user.save()
return HttpResponseRedirect(reverse('index-view'))
else:
form = ChangeUserImageForm()
return render(request, 'users/changeuserimage.html',{'form':form})
def user_setting_handler(request):
user_account = request.META["user_info"]
user_info = UserInfo.query_format_info_by_user_id(user_account.id)
if request.method == "GET":
data = dict()
user_info["email"] = UserAccount.query_user_by_id(user_account.id).email
data["user_info"] = user_info
return render(request, "about/setting.html", data)
# ????
avatar = UploadImage(request)
image_list = avatar.save()
nick_name = request.POST.get("nick_name")
gender = request.POST.get("gender")
user = UserInfo.objects.get(user_id=user_account.id)
user.gender = gender
if nick_name != user_info["nick_name"]:
user.nick_name = nick_name
if len(image_list) > 0:
user.avatar = image_list[0].id
user.save()
# ????
UserInfo.query_format_info_by_user_id(user_account.id, False)
return HttpResponseRedirect("/user/info/" + str(user_account.id))
def home_recommend_handler(request):
operator = request.META["user_info"]
if request.method == "GET":
result = dict()
article_id = request.GET.get("article_id")
result["data"] = BlogArticle.query_article_by_id(article_id)
result["operator"] = operator
result["user_info"] = UserInfo.query_format_info_by_user_id(operator.id)
return render(request, "manage/recommend.html", result)
image_list = UploadImage(request).save()
article_id = request.POST.get("article_id")
introl = request.POST.get("intro")
weight = request.POST.get("weight")
# TODO:????
recommend = HomeRecommend()
recommend.share_id = article_id
recommend.reco_cover = image_list[0].id
recommend.reco_intro = introl
recommend.weight = weight
recommend.operator_id = operator.id
recommend.status = 1
recommend.save()
return HttpResponseRedirect("/manage")
def login_required(func):
"""
??????????
"""
def do_auth(*args, **kwargs):
user_info = args[0].META["user_info"]
if not user_info:
return HttpResponseRedirect("/auth/login")
return func(*args, **kwargs)
return do_auth
def manager_required(func):
"""
?????????????????
?????????????????
"""
def auth_check(*args, **kwargs):
account = args[0].META["user_info"]
try:
user_info = UserInfo.objects.filter(user_id=account.id, status=1).get()
if user_info.role_id != 9:
return HttpResponseRedirect("/index")
except UserInfo.DoesNotExist:
return HttpResponseRedirect("/index")
return func(*args, **kwargs)
return auth_check
def post(self, request, *args, **kwargs):
user = User.objects.get(pk=request.user.pk)
form = UserUpdateForm(request.POST, instance=user, initial={'organization': user.odm2user.affiliation.organization})
if form.is_valid():
form.save()
messages.success(request, 'Your information has been updated successfully.')
return HttpResponseRedirect(reverse('user_account'))
else:
messages.error(request, 'There were some errors in the form.')
return render(request, self.template_name, {'form': form, 'organization_form': OrganizationForm()})
def post(self, request, *args, **kwargs):
site = self.get_object(self.get_queryset())
if not site:
raise Http404
if request.user.id != site.django_user_id:
# temporary error. TODO: do something a little bit more elaborate. or maybe not...
raise Http404
sampling_feature = site.sampling_feature
data_logger_program = DataLoggerProgramFile.objects.filter(
affiliation_id=site.affiliation_id,
program_name__contains=sampling_feature.sampling_feature_code
).first()
data_logger_file = data_logger_program.data_logger_files.first()
feature_actions = sampling_feature.feature_actions.with_results().all()
for feature_action in feature_actions:
result = feature_action.results.first()
delete_result(result)
data_logger_file.delete()
data_logger_program.delete()
sampling_feature.site.delete()
sampling_feature.delete()
site.sensors.all().delete()
site.delete()
return HttpResponseRedirect(self.success_url)
def render_done(self):
return HttpResponseRedirect(self.steps.done_url)
def render_last(self):
return HttpResponseRedirect(self.steps.last_url)
def render_current(self):
return HttpResponseRedirect(self.steps.current_url)
def forms_valid(self, forms, form_name):
form_valid_method = '%s_form_valid' % form_name
if hasattr(self, form_valid_method):
return getattr(self, form_valid_method)(forms[form_name])
else:
return HttpResponseRedirect(self.get_success_url(form_name))
def home(request):
if request.user.is_authenticated():
return HttpResponseRedirect(reverse('task-list'))
else:
return render(request, 'stormtrooper/homepage.html')
def get(self, request, pk):
try:
task_obj = Task.objects.get(pk=pk)
if not task_obj.is_closed:
exclude = request.GET.get('exclude')
random_qn = task_obj.random_question(user=request.user,
exclude=exclude)
if random_qn:
return HttpResponseRedirect(random_qn.get_absolute_url())
messages.add_message(self.request, messages.ERROR, "There are no more unanswered questions")
return HttpResponseRedirect(task_obj.get_absolute_url())
except Task.DoesNotExist:
return Http404
def form_invalid(self, form):
if form.errors and form.errors.get('task'):
for form_error in form.errors['task']:
messages.add_message(self.request, level=messages.ERROR, message=form_error)
return HttpResponseRedirect(form.task.get_absolute_url())
def dispatch(self, request, *args, **kwargs):
if request.user.is_authenticated():
return HttpResponseRedirect(reverse('home'))
return super(LoginView, self).dispatch(request, *args, **kwargs)
def vote(request, question_id):
question = get_object_or_404(Question,pk = question_id)
try:
selected_choice = question.choice_set.get(pk = request.POST['choice'])
except (KeyError, Choice.DoesNotExists):
return render(request, 'polls/detail.html',{
'question': question,
'error_message' : "You didn't select a choice.",
})
else:
selected_choice.votes += 1
selected_choice.save()
return HttpResponseRedirect(reverse('polls:results', args = (question.id)))
#return HttpResponse("You're voting on question %s." % question_id)
def get(self, request):
username = request.user.get_username()
filename = request.GET['filename']
signature = request.GET['signature']
if not check_signature(signature, filename, username):
return HttpResponseForbidden()
return HttpResponseRedirect(
redirect_to=self.storage.cloud_front_url(filename)
)
def logout_view(request):
logout(request)
return HttpResponseRedirect("login")