def razzia_wizard(request):
if request.method == 'POST':
return redirect(
reverse("razzia_view") + "?start={0}-{1}-{2}&end={3}-{4}-{5}&products={6}&username=&razzia_title={7}"
.format(int(request.POST['start_year']),
int(request.POST['start_month']),
int(request.POST['start_day']),
int(request.POST['end_year']), int(request.POST['end_month']),
int(request.POST['end_day']),
request.POST.get('products'),
request.POST.get('razzia_title')))
suggested_start_date = timezone.now() - datetime.timedelta(days=-180)
suggested_end_date = timezone.now()
start_date_picker = fields.DateField(
widget=extras.SelectDateWidget(years=[x for x in range(2000, timezone.now().year + 1)]))
end_date_picker = fields.DateField(
widget=extras.SelectDateWidget(years=[x for x in range(2000, timezone.now().year + 1)]))
return render(request, 'admin/stregsystem/razzia/wizard.html',
{
'start_date_picker': start_date_picker.widget.render("start", suggested_start_date),
'end_date_picker': end_date_picker.widget.render("end", suggested_end_date)},
)
python类render()的实例源码
def user_login(request):
"""
Logins user if he passed authentication.
"""
log_in_form = LogInForm(request.POST)
if log_in_form.is_valid():
user = authenticate(username=log_in_form.cleaned_data['username'],
password=log_in_form.cleaned_data['passw'])
if user:
login(request, user)
logger.info("User '{}' logged in.".format(user.username))
return redirect('index')
else:
return render(request, 'index.html', {'invalid_authentication': True})
# ----------------------------------------------------------------------------------------------------------------------
def post_add(request):
def create_post_comment(file, comment_content):
post = Post(author=request.user, photo=file)
post.save()
if comment_content != '':
post.add_comment(user=request.user, content=comment_content)
if request.method == 'POST':
form = PostForm(request.POST, request.FILES)
if form.is_valid():
files = request.FILES.getlist('photo')
comment_content = form.cleaned_data.get('content', '').strip()
for file in files:
create_post_comment(file, comment_content)
return redirect('post:list')
else:
form = PostForm()
context = {
'form': form,
}
return render(request, 'post/post_add.html', context)
def createconfig(request):
print('Hello Config')
query_string = request.META['QUERY_STRING']
new_query_string = []
for item in query_string.split('&'):
if not item.startswith('individuals'):
new_query_string.append(item)
query_string = "&".join(new_query_string)
filterstring = query_string
if request.method == 'POST':
form = Filter(request.POST)
if form.is_valid():
#use id for unique names
filterconfig = FilterConfig.objects.create(user=request.user)
filterconfig.name = request.POST['name']
filterconfig.filterstring = form.cleaned_data['filterstring']
filterconfig.save()
#return HttpResponseRedirect('/filter_analysis/?%s' % (filterconfig.filterstring))
return redirect(reverse('filter_analysis')+'?'+filterconfig.filterstring)
else:
form = Filter(initial={'filterstring': filterstring})
return render(request, 'filter_analysis/createfilter.html', {'form': form})
def upload_output_xml(request):
if request.method == 'POST':
form = UploadOutputXmlForm(request.POST, request.FILES)
print "HELLP"
if form.is_valid():
print "YES"
try:
handle_uploaded_file(request)
except:
tt, value, tb = sys.exc_info()
print {'exception_value': value,
'value': tt,
'tb': traceback.format_exception(tt, value, tb)}
return handler500(request)
return HttpResponseRedirect(reverse('home'))
else:
return handler500(request)
else:
print "No"
form = UploadOutputXmlForm()
return render(request, 'report/upload_xml_file.html', {'form': form})
def handler500(request, template_name='500.html'):
t = get_template(template_name)
tt, value, tb = sys.exc_info()
ctx = Context({'exception_value': value,
'value': tt,
'tb': traceback.format_exception(tt, value, tb)})
return HttpResponseServerError(t.render(ctx))
def event_signin(request, *args, **kwargs):
if not request.user.is_anonymous():
logout(request)
event = Event.objects.get(pk=kwargs.get('pk', None))
if request.method == "GET":
return render(request,
'signin_sheets/participant_signin.html',
{'form': ParticipantSigninForm,
'event': event})
elif request.method == "POST":
form = ParticipantSigninForm(request.POST)
if form.is_valid():
user = form.save()
user.event = Event.objects.get(pk=kwargs.get('pk'))
user.save()
messages.success(request, "Your information has been saved.<br>Thanks for signing in!")
return redirect(reverse('event-signin',
kwargs={'pk': kwargs.get('pk')}))
return redirect(reverse('event-list'))
def sign_out(request, context):
tenant = context.tenant
cfg_url = '%s?signed_request=%s' % (reverse('sentry-hipchat-ac-config'), context.signed_request)
if 'no' in request.POST:
return HttpResponseRedirect(cfg_url)
elif request.method == 'POST':
if tenant.auth_user:
tenant.clear()
notify_tenant_removal(tenant)
url = "%s?next=%s" % (reverse('sentry-logout'), cfg_url)
return HttpResponseRedirect(url)
return render(
request, 'sentry_hipchat_ac/sign_out.html', {
'context': context,
'tenant': tenant,
}
)
def home(request):
template = 'shortener/home.html'
if request.method == 'GET':
form_class = Urlform()
else:
form_class = Urlform(request.POST)
if form_class.is_valid():
url = form_class.cleaned_data['url']
host = form_class.cleaned_data['host']
short_url = worker(url, host)
form_class = Urlform()
return render(request, template, {'form': form_class, 'short_url': short_url,})
return render(request, template, {'form': form_class,})
def post_list_original(request):
# ?? Post??? 'posts'?? key? context? ?? return render??
# post/post_list.html? template?? ????? ??
# ? ???? ?? ?? 4???? ??? ????? ???? ??
# ? post??? CommentForm? ??? ???? ??? ????? ??
# ??
# 1. post_list? hashtag_post_list?? pagination? ????
# ? ?? 10??? ????? ??
# https://docs.djangoproject.com/en/1.11/topics/pagination/
# 2. ??? ?? ?? ? ??? ? ?? ?? ??
posts = Post.objects.all()
context = {
'posts': posts,
'comment_form': CommentForm(),
}
return render(request, 'post/post_list.html', context)
def comment_modify(request, comment_pk):
# get_object_or_404? ???? Comment?? ????
comment = get_object_or_404(Comment, pk=comment_pk)
next = request.GET.get('next')
if request.method == 'POST':
# Form? ??? ??? update?? (data? ??? ??? update?)
form = CommentForm(data=request.POST, instance=comment)
if form.is_valid():
form.save()
if next:
return redirect(next)
return redirect('post:post_detail', post_pk=comment.post.pk)
else:
# CommentForm? ?? comment????? ??? ?? bound form
form = CommentForm(instance=comment)
context = {
'form': form,
}
return render(request, 'post/comment_modify.html', context)
def youtube_search(request):
"""
??? ??? ????? ??? ??
"""
context = dict()
q = request.GET.get('q')
if q:
# YouTube????? ????
data = youtube.search(q)
for item in data['items']:
Video.objects.create_from_search_result(item)
re_pattern = ''.join(['(?=.*{})'.format(item) for item in q.split()])
videos = Video.objects.filter(
Q(title__iregex=re_pattern) |
Q(description__iregex=re_pattern)
)
context['videos'] = videos
return render(request, 'post/youtube_search.html', context)
def clients(request):
data = {}
for word in cache.keys("client_*"):
client = re.sub(r'^client_', '', word)
try:
client_data = cache.get(word)
data[client] = client_data
except:
raise
profile_form = ContactForm(instance=Contact.objects.get(user=request.user.id))
return render(request, 'isubscribe/clients.html', {'DATA':data, 'profile_form': profile_form})
def subscriptions(request):
data = {}
for word in r.keys("subscription_*"):
subscription = re.sub(r'^subscription_', '', str(word.decode('utf-8')))
try:
subscription_data = r.lrange(word, 0, -1)
data[subscription] = subscription_data
except:
raise
profile_form = ContactForm(instance=Contact.objects.get(user=request.user.id))
return render(request, 'isubscribe/subscriptions.html', {'DATA':data, 'profile_form': profile_form})
#@login_required(login_url=reverse_lazy('login'))
def user_settings(request):
logger.debug('settings view triggered by %s' % (request.user.username))
form = ContactForm(request.POST, instance=Contact.objects.get(user=request.user.id))
if form.is_valid:
try:
form.save()
return HttpResponse('Done', status=200)
except:
return HttpResponse(json.dumps(form.errors), status=409)
else:
return HttpResponse(json.dumps(form.errors), status=409)
return render(request, 'isubscribe/user_settings.html', {'DATA':data, 'form': form})
def open_book(request, book_id):
"""
Returns a page for reading book.
"""
if request.user.is_authenticated():
book = Book.objects.get(id=book_id)
user = TheUser.objects.get(id_user=request.user)
added_book = AddedBook.objects.get(id_book=book, id_user=user)
added_book.last_read = added_book.last_read.now()
added_book.save()
logger.info("User '{}' opened book with id: '{}'.".format(user, book.id))
context = {'book': book, 'book_page': added_book.last_page}
return render(request, 'read_book.html', context)
else:
return redirect('index')
# ----------------------------------------------------------------------------------------------------------------------
def index(request):
latest_files = File.objects.order_by("-posted_date")[:10]
latest_updated_families = ProductFamily.objects \
.annotate(last_posted_date=Max('file__posted_date')) \
.order_by('-last_posted_date')[:10]
groups = ProductGroup.objects.order_by("name")
total_count = File.objects.count()
fcu_banner_expiration_date = datetime.date(2017, 11, 10)
show_fcu_banner = datetime.date.today() < fcu_banner_expiration_date
context = {
'show_fcu_banner': show_fcu_banner,
'latest_files': latest_files,
'latest_updated_families': latest_updated_families,
'groups': groups, 'total_count': total_count,
}
return render(request, 'msdn/index.html', context)
def family_list(request):
start_letter = request.GET.get('start_letter')
if start_letter:
first_letter = start_letter[0]
else:
first_letter = 'a'
families = ProductFamily.objects \
.prefetch_related('group') \
.annotate(Count('file')) \
.order_by('name')
if first_letter == '#':
families = families.exclude(name__regex=r'^[A-Za-z]')
else:
families = families.filter(name__istartswith=first_letter)
all_letters = '#' + string.ascii_lowercase
context = {'families': families, 'first_letter': first_letter, 'all_letters': all_letters}
return render(request, 'msdn/family_list.html', context)
def Login(request):
if(request.method == "POST"):
UserAccount = request.POST.get('name');#?????
UserPassword = request.POST.get('password');#??????
userInfo = getUserToSQL(UserAccount,UserPassword);#????? ??????
if(userInfo):
if userInfo[0].User_Role == 0:#?????
request.session['CurrentUserId'] = userInfo[0].User_Id;#????????
CurrentId = request.session.get('CurrentUserId');
CurrentUser = getUserToSQLForId(CurrentId)[0];
objs = UserInfo.objects.filter(User_Role = 1);#????????
return render(request,'admin.html',{'CurrentUser':CurrentUser,'objs':objs});
else:#??????
request.session['CurrentUserId'] = userInfo[0].User_Id;
CurrentId = request.session.get('CurrentUserId');
CurrentUser = getUserToSQLForId(CurrentId)[0];
signStatus = SignStatus.objects.filter(Sign_Status_User=CurrentUser)[0];#??????
if(signStatus.Sign_Status == True):#????????
return render(request, 'normalOne.html', {'CurrentUser': CurrentUser, 'signStatus': signStatus});
else:#????????
return render(request,'normalTwo.html',{'CurrentUser':CurrentUser,'signStatus':signStatus});
return HttpResponse("????????????");#?????????
#????
def login(request):
if request.method == 'POST':
form = AuthenticationForm(data=request.POST)
if form.is_valid():
code = LoginCode.objects.filter(**{
'user__email': request.POST.get('username')
})[0]
code.next = reverse('webtzite_register')
code.save()
code.send_login_code(
secure=request.is_secure(),
host=request.get_host(),
)
return render(request, 'registration/sent_mail.html')
jpy_user = os.environ.get('JPY_USER')
if jpy_user:
from django.contrib.auth import authenticate
code = authenticate(code=None, username=jpy_user+'@users.noreply.github.com')
user = authenticate(code=code.code, username=code.user.username)
auth_login(request, user)
return redirect(reverse('webtzite_register'))
return django_login(request, authentication_form=AuthenticationForm)
def signup_fbv(request):
"""
????? ?????
1. member/signup.html?? ??
2. SignupForm ??? ??
3. ?? Form? ???? signup.html??? ??
4. POST??? ?? MyUser??? ?? ? ???
5. ??? ???? post_list ?? ??
"""
if request.method == 'POST':
form = SignupForm(request.POST)
if form.is_valid():
user = form.create_user()
login(request, user)
return redirect('post:list')
else:
form = SignupForm()
context = {
'form': form,
}
return render(request, 'member/signup.html', context)
def bookmark_list(request):
all_bookmarks = request.user.bookmarkvideo_set.select_related('video')
# ?? ??? ???? ?????? ??
paginator = Paginator(all_bookmarks, 5)
page = request.GET.get('page')
try:
bookmarks = paginator.page(page)
except PageNotAnInteger:
bookmarks = paginator.page(1)
except EmptyPage:
bookmarks = paginator.page(paginator.num_pages)
context = {
'bookmarks': bookmarks,
}
return render(request, 'video/bookmark_list.html', context)
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.DoesNotExist):
# Redisplay the question voting form.
return render(request, 'polls/detail.html', {
'question': question,
'error_message': "You didn't select a choice."
})
else:
# See Avoiding race conditions using F()
# https://docs.djangoproject.com/en/1.9/ref/models/expressions/#avoiding-race-conditions-using-f
selected_choice.votes += 1
selected_choice.save()
# Always return an HttpResponseRedirect after successfully dealing
# with POST data. This prevents data from being posted twice if a
# user hits the Back button.
return HttpResponseRedirect(reverse('polls:results', args=(
question.id,
)))
def plan_run_repo(request, plan_id, repo_owner, repo_name):
plan = get_object_or_404(Plan, id=plan_id)
repo = get_object_or_404(Repository, owner=repo_owner, name=repo_name)
if request.method == 'POST':
form = RunPlanForm(plan, repo, request.user, request.POST)
if form.is_valid():
build = form.create_build()
return HttpResponseRedirect(build.get_absolute_url())
else:
form = RunPlanForm(plan, repo, request.user)
context = {
'form': form,
'plan': plan,
'repo': repo,
}
return render(request, 'plan/run.html', context=context)
def _org_lock_unlock(request, org_id, action):
org = get_object_or_404(Org, id=org_id)
if org.scratch:
raise HttpResponseForbidden('Scratch orgs may not be locked/unlocked')
if action == 'lock':
form_class = OrgLockForm
template = 'cumulusci/org_lock.html'
elif action == 'unlock':
form_class = OrgUnlockForm
template = 'cumulusci/org_unlock.html'
if request.method == 'POST':
form = form_class(request.POST)
if form.is_valid():
if request.POST['action'] == 'Lock':
org.lock()
elif request.POST['action'] == 'Unlock':
org.unlock()
return HttpResponseRedirect(org.get_absolute_url())
else:
form = form_class()
return render(request, template, context={'form': form, 'org': org})
def _delete_notification(request, notification):
if request.user != notification.user:
return HttpResponseForbidden()
if request.method == 'POST':
form = DeleteNotificationForm(request.POST)
if form.is_valid():
if request.POST['action'] == 'Delete':
notification.delete()
return HttpResponseRedirect('/notifications')
else:
form = DeleteNotificationForm()
return render(
request,
'notification/delete_notification.html',
context={
'form': form,
'notification': notification,
'notification_type': notification.__class__.__name__.replace(
'Notification',
'',
),
},
)
def repo_detail(request, owner, name):
query = {
'owner': owner,
'name': name,
}
if not request.user.is_staff:
query['public'] = True
repo = get_object_or_404(Repository, **query)
query = {'repo': repo}
builds = view_queryset(request, query)
context = {
'repo': repo,
'builds': builds,
}
return render(request, 'repository/repo_detail.html', context=context)
def branch_detail(request, owner, name, branch):
query = {
'owner': owner,
'name': name,
}
if not request.user.is_staff:
query['public'] = True
repo = get_object_or_404(Repository, **query)
branch = get_object_or_404(Branch, repo=repo, name=branch)
query = {'branch': branch}
builds = view_queryset(request, query)
context = {
'branch': branch,
'builds': builds,
}
return render(request, 'repository/branch_detail.html', context=context)
def commit_detail(request, owner, name, sha):
query = {
'owner': owner,
'name': name,
}
if not request.user.is_staff:
query['public'] = True
repo = get_object_or_404(Repository, **query)
query = {'commit': sha, 'repo': repo}
builds = view_queryset(request, query)
context = {
'repo': repo,
'builds': builds,
'commit': sha,
}
return render(request, 'repository/commit_detail.html', context=context)
def post_new(request):
if request.method == 'POST':
form = PostModelForm(request.POST, request.FILES)
if form.is_valid():
# form.cleaned_data # dict??
post = form.save()
return redirect(post) # post.get_absolute_url() ???? ??? ??
# return redirect('blog:post_detail', post.id)
else:
# if request.method == 'GET':
form = PostModelForm()
return render(request, 'blog/post_form.html', {
'form': form,
})
# from django.views.generic import CreateView
# post_new = CreateView.as_view(model=Post, form_class=PostModelForm, success_url='/weblog/')
# post_new = CreateView.as_view(model=Post, form_class=PostModelForm)