От" WPF, Развязанный ", страница 383:
Визуальное тестирование хита может сообщить Вам [приблизительно 1 112] весь
Visual
с, которые пересекают местоположение, [...] необходимо использовать [...][VisualTreeHelper.]HitTest
метод, который принимаетHitTestResultCallback
делегат. Перед этой версиейHitTest
возвраты, делегат вызывается однажды для каждого релевантногоVisual
, начинающий с самого верхнего и заканчивающийся в самом нижнем.
подпись такого обратного вызова
HitTestResultBehavior Callback(HitTestResult result)
, и это должно возвратиться HitTestResultBehaviour.Continue
для получения дальнейших хитов, как показано ниже (от связанной страницы на MSDN):
// Return the result of the hit test to the callback.
public HitTestResultBehavior MyHitTestResult(HitTestResult result)
{
// Add the hit test result to the list that will be processed after the enumeration.
hitResultsList.Add(result.VisualHit);
// Set the behavior to return visuals at all z-order levels.
return HitTestResultBehavior.Continue;
}
Для получения дополнительной информации, консультируйтесь документация MSDN для VisualTreeHelper.HitTest
.
Я бы использовал render_to_string
и HttpResponseNotFound
, например return HttpResponseNotFound (render_to_string ('404.html'))
.
Наконец-то я понял, почему возвращенный код состояния не работает. Вместо установки заголовка сообщения это просто:
response.status_code = 404
Тем не менее, код, предложенный PiotrLegnica, определенно выигрывает по простоте, удобочитаемости и красоте .. Значок все еще стоит;)
С уважением,
Джерард.
Почему бы вам просто не использовать исключение Http404?
if request.user.is_authenticated():
raise Http404
else:
return HttpResponseRedirect('/login')
Это должно подойти вам.