Выполняет указанный шаблон с переданным словарем контекста и возвращает HttpResponse с полученным содержимым.
Функция render() аналогична вызову функции render_to_response() с аргументом context_instance, который указывает использовать RequestContext.
from django.shortcuts import render
def my_view(request):
# View code here...
return render(request, 'myapp/index.html', {"foo": "bar"},
content_type="application/xhtml+xml")
from django.http import HttpResponse
from django.template import RequestContext, loader
def my_view(request):
# View code here...
t = loader.get_template('myapp/template.html')
c = RequestContext(request, {'foo': 'bar'})
return HttpResponse(t.render(c),
content_type="application/xhtml+xml")
Выполняет указанный шаблон с переданным словарем контекста и возвращает HttpResponse с полученным содержимым.
Экземпляр контекста, который будет использоваться при выполнении шаблона. По-умолчанию, используется экземпляр Context (со значениями с dictionary). Если вам необходимо использовать процессоры контекста, передайте экземпляр RequestContext. Ваш код может выглядеть таким образом:
return render_to_response('my_template.html',
my_data_dictionary,
context_instance=RequestContext(request))
from django.shortcuts import render_to_response
def my_view(request):
# View code here...
return render_to_response('myapp/index.html', {"foo": "bar"},
mimetype="application/xhtml+xml")
from django.http import HttpResponse
from django.template import Context, loader
def my_view(request):
# View code here...
t = loader.get_template('myapp/template.html')
c = Context({'foo': 'bar'})
return HttpResponse(t.render(c),
mimetype="application/xhtml+xml")
Возвращает перенаправление(HttpResponseRedirect) на URL указанный через ургументы.
В аргументах можно передать:
По-умолчанию использует временное перенаправление, используйте аргумент permanent=True для постоянного перенаправления.
Передавая объект; в качестве URL-а для перенаправления будет использоваться результат вызова метода get_absolute_url():
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object)
Передавая название представления и необходимые позиционные или именованные аргументы; URL будет вычислен с помощью функции reverse():
def my_view(request):
...
return redirect('some-view-name', foo='bar')
Передавая непосредственно URL:
def my_view(request):
...
return redirect('/some/url/')
Работает так же с полным URL-ом:
def my_view(request):
...
return redirect('http://example.com/')
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object, permanent=True)
Вызывает get() для переданного менеджера модели и возвращает полученный объект. Вызывает исключение Http404 вместо DoesNotExist.
from django.shortcuts import get_object_or_404
def my_view(request):
my_object = get_object_or_404(MyModel, pk=1)
from django.http import Http404
def my_view(request):
try:
my_object = MyModel.objects.get(pk=1)
except MyModel.DoesNotExist:
raise Http404
Возвращает результат метода filter() для переданного менеджера модели, вызывает Http404 если получен пустой список.
from django.shortcuts import get_list_or_404
def my_view(request):
my_objects = get_list_or_404(MyModel, published=True)
from django.http import Http404
def my_view(request):
my_objects = list(MyModel.objects.filter(published=True))
if not my_objects:
raise Http404
Aug 21, 2013