def post_edit(request, pk):
post = Post.objects.get(pk=pk)
if request.method == 'POST':
form = PostModelForm(request.POST, request.FILES, instance=post)
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(instance=post)
return render(request, 'blog/post_form.html', {
'form': form,
})
# from django.views.generic import UpdateView
# post_edit = UpdateView.as_view(model=Post, form_class=PostModelForm)
python类render()的实例源码
def anuncio(request):
anuncios = getTodosAnunciosValidos()
form = formBusca()
edit_forms = getFormsEdicaoDeAnuncios(anuncios)
return render(request, 'anuncios/anuncios.html', {'anuncios': anuncios, 'formBusca':form, 'localidade':"Localidade ", 'editforms':edit_forms })
###################################################################################################
#View que renderiza anuncios do banco de dados filtrados por localidade.
#
#Nome: anuncioPorLocal
#Autor: Renan Basilio
#Versao: 1.0
#
#Algoritmo:
# 1. Chama o metodo getAnunciosPorLocalidade com o parametro localidade fornecido pela url
# 2. Inicializa uma form de busca
# 3. Chama o metodo render
#
####################################################################################################
def anuncioPorLocal(request, localidade):
anuncios = getAnunciosPorLocalidade(localidade)
edit_forms = getFormsEdicaoDeAnuncios(anuncios)
nome_local = Localidade.objects.get(nome_filtro=localidade).nome + ' '
form = formBusca()
return render(request, 'anuncios/anuncios.html', {'anuncios': anuncios, 'formBusca':form, 'localidade':nome_local, 'editforms':edit_forms})
###################################################################################################
#View que renderiza anuncios do banco de dados filtrados por um termo de busca
#
#Nome: anuncioPorBusca
#Autor: Renan Basilio
#Versao: 1.0
#
#Algoritmo:
# 1. Inicializa uma form de busca
# 2. Chama o metodo getAnunciosPorSubstring com o parametro 't' fornecido pela url
# 3. Chama o metodo render
#
####################################################################################################
def anuncioPorBusca(request):
form = formBusca(request.GET)
anuncios = getAnunciosPorSubstring(request.GET.get('t'))
edit_forms = getFormsEdicaoDeAnuncios(anuncios)
return render(request, 'anuncios/anuncios.html', {'anuncios': anuncios, 'formBusca':form, 'localidade':"Localidade ", 'editforms':edit_forms})
###################################################################################################
#View que renderiza anuncios do banco de dados filtrados pelo usuario que os criou
#
#Nome: anuncioPorUsuario
#Autor: Renan Basilio
#Versao: 1.0
#
#Algoritmo:
# 1. Verifica se o usuario esta autenticado
# 2. Se nao retorna uma HttpResponseForbidden
# 3. Se sim, inicializa form de busca e constroi lista de anuncios a partir do metodo getAnunciosPorUsuario
# 4. Chama o metodo render
#
####################################################################################################
def post(self, request):
form_busca = formBusca()
form = self.form_class(request.POST)
if form.is_valid():
user = form.save(commit=False)
nome = form.cleaned_data['nome']
username = form.cleaned_data['username']
email = form.cleaned_data['email']
celular = form.cleaned_data['celular']
descricao = form.cleaned_data['descricao']
password = form.cleaned_data['password']
user.set_password(password)
user.save()
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect('../')
return render(request, self.template_name, {'form': form, 'formBusca':form_busca, 'localidade':"Localidade "})
def post(self, request):
form_busca = formBusca()
form = self.form_class(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect('../')
else:
print("Sua conta foi desabilitada!")
else:
print("Seu nome de usuario e/ou senha estao incorretos.")
return render(request, self.template_name, {'form': form, 'formBusca':form_busca, 'localidade':"Localidade "})
def edit(request, individual_id):
individual = get_object_or_404(Individual, pk=individual_id)
if request.method == 'POST':
form = IndividualForm(request.POST, instance=individual)
if form.is_valid():
form.save()
return redirect('dashboard')
# form = IndividualForm(request.POST, request.FILES)
# if form.is_valid():
# individual = form.save(commit=False)
# individual.user = request.user
# individual.save()
# return redirect('dashboard')
else:
form = IndividualForm(instance=individual)
return render(request, 'individuals/individual_form.html', {'form':form})
def view(request, disease_id):
disease = get_object_or_404(Disease, pk=disease_id)
gene = disease.gene_set.all()[0]
# print 'gene', gene.official_name
# individuals = Individual.objects.all()
individuals_variants = Variant.objects.filter(gene=gene.official_name)
# individuals_variants = []
# for individual in individuals:
# individual_variants = Variant.objects.filter(individual=individual, gene=gene.official_name)
# individuals_variants.append(individual_variants)
# individual_variants.query.group_by = ['individual_id']
# results = query.execute_sql()
# individuals = Individual.objects.all()
# for individual in individuals:
# individual_variants = Variant.objects.find(filter(date__range=["2011-01-01", "2011-01-31"]))
return render(request, 'diseases/view.html', {'disease': disease, 'variants': individuals_variants})
def edit(request, case_id):
case = get_object_or_404(Case, pk=case_id)
if request.method == 'POST':
form = CaseForm(request.POST, request.FILES, instance=case)
if form.is_valid():
form.save()
# variants = form.cleaned_data['variants']
# strs = form.cleaned_data['strs']
# cnvs = form.cleaned_data['cnvs']
# #use id for unique names
# individual = Individual.objects.create(user=request.user, status='new')
#
# individual.variants=variants
# individual.strs=cnvs
# individual.cnvs=cnvs
#
# individual.name=request.POST['name']
# individual.save()
# AnnotateVariants.delay(individual.id)
return redirect('cases_list')
else:
form = CaseForm(instance=case)
return render(request, 'cases/edit.html', {'form': form})
def create(request):
print('Hello')
filterstring = request.META['QUERY_STRING']
print(filterstring)
if request.method == 'POST':
form = Filter(request.POST)
if form.is_valid():
#use id for unique names
filter = FilterAnalysis.objects.create(user=request.user)
filter.name = request.POST['name']
filter.filterstring = form.cleaned_data['filterstring']
filter.save()
#return HttpResponseRedirect('/filter_analysis/?%s' % (filter.filterstring))
return redirect(reverse('filter_analysis')+'?'+filter.filterstring)
else:
form = Filter(initial={'filterstring': filterstring})
return render(request, 'filter_analysis/createfilter.html', {'form': form})
def family_analysis_create_filter(request):
print('Hello')
filterstring = request.META['QUERY_STRING']
print(filterstring)
if request.method == 'POST':
form = FamilyFilter(request.POST)
if form.is_valid():
#use id for unique names
filter = FamilyFilterAnalysis.objects.create(user=request.user)
filter.name = request.POST['name']
filter.filterstring = form.cleaned_data['filterstring']
filter.save()
#return HttpResponseRedirect('/filter_analysis/family_analysis/?%s' % (filter.filterstring))
return redirect(reverse('family_analysis')+'?'+filter.filterstring)
# return redirect('mendelmd/%s' % (reverse('family_analysis')+'?'+filter.filterstring))
else:
form = FamilyFilter(initial={'filterstring': filterstring})
return render(request, 'filter_analysis/createfilter.html', {'form': form})
def oneclick(request):
form = FilterAnalysisForm()
if request.method == 'GET':
print('Entrando no GET')
# print request.META
query_string = request.META['QUERY_STRING']
print(query_string)
if query_string != '':
print("LIMPANDO")
new_query_string = []
query_string = query_string.split('&')
for item in query_string:
if not (item.startswith('csrfmiddlewaretoken') or item.startswith('hash') or item.startswith('wizard')):
#get here only the ones need to be cleaned Ex. 1-chr
#item = "-".join(item.split('-', 2)[1:])
new_query_string.append(item)
#create new query
filterstring = "&".join(new_query_string)
# return HttpResponseRedirect('/filter_analysis/?%s' % (filterstring))
return redirect(reverse('filter_analysis')+'?'+filterstring)
return render(request, 'filter_analysis/oneclick.html', {'form':form})
def create(request):
print('Hello')
filterstring = request.META['QUERY_STRING']
print(filterstring)
if request.method == 'POST':
form = Filter(request.POST)
if form.is_valid():
#use id for unique names
filter = FilterAnalysis.objects.create(user=request.user)
filter.name = request.POST['name']
filter.filterstring = form.cleaned_data['filterstring']
filter.save()
#return HttpResponseRedirect('/filter_analysis/?%s' % (filter.filterstring))
return redirect(reverse('filter_analysis')+'?'+filter.filterstring)
else:
form = Filter(initial={'filterstring': filterstring})
return render(request, 'filter_analysis/createfilter.html', {'form': form})
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 import_files(request, project_id):
project = get_object_or_404(Project, pk=project_id)
form = ImportFilesForm(request.POST or None)
if request.method == 'POST':
if form.is_valid():
for file in form.cleaned_data['file_list'].splitlines():
# print(file)
file_objs = File.objects.filter(name__contains=file)
# print(file_obj)
for file_obj in file_objs:
project.files.add(file_obj)
# form.save()
return redirect('projects-view', project.id)
context = {'form': form, 'project': project}
return render(request, 'projects/import_files.html', context)
def napravi_oglas(request):
if not request.user.is_authenticated():
return render(request, 'music/login.html')
else:
form = OglasForm(request.POST or None, request.FILES or None)
if form.is_valid():
oglas = form.save(commit=False)
oglas.vlasnik = request.user
oglas.slike = request.FILES['slike']
file_type = oglas.slike.url.split('.')[-1]
file_type = file_type.lower()
if file_type not in IMAGE_FILE_TYPES:
context = {
'oglas': oglas,
'form': form,
'error_message': 'Image file must be PNG, JPG, or JPEG',
}
return render(request, 'music/napravi_oglas.html', context)
oglas.save()
return render(request, 'music/detail.html', {'oglas': oglas})
context = {
"form": form,
'kategorije': Kategorija.objects.all(),
}
return render(request, 'music/napravi_oglas.html', context)
def search(request):
search_query = request.GET.get('query', None)
page = request.GET.get('page', 1)
# Search
if search_query:
search_results = Page.objects.live().search(search_query)
query = Query.get(search_query)
# Record hit
query.add_hit()
else:
search_results = Page.objects.none()
# Pagination
paginator = Paginator(search_results, 10)
try:
search_results = paginator.page(page)
except PageNotAnInteger:
search_results = paginator.page(1)
except EmptyPage:
search_results = paginator.page(paginator.num_pages)
return render(request, 'search/search.html', {
'search_query': search_query,
'search_results': search_results,
})
def home(request):
return render(request, "base/home.html")
def base_files(request, filename):
location = "base/" + filename
return render(request, location, {}, content_type="text/plain")
def home(request):
return render(request, "report/home.html")