Django.contrib.flatpages без моделей

Мы делаем нечто подобное с заголовками запросов здесь . У нас есть абстрактный фильтр , который правильно настраивает URI, вам просто нужно определить URI из ServerWebExchange.

public class CookieToRequestUriGatewayFilterFactory extends
        AbstractChangeRequestUriGatewayFilterFactory {
    private final Logger log = LoggerFactory
            .getLogger(RequestHeaderToRequestUriGatewayFilterFactory.class);

    public RequestHeaderToRequestUriGatewayFilterFactory() {
        super(NameConfig.class);
    }

    @Override
    public List shortcutFieldOrder() {
        return Arrays.asList(NAME_KEY);
    }

    @Override
    protected Optional determineRequestUri(ServerWebExchange exchange,
            NameConfig config) {
        String cookieValue = exchange.getRequest().getCookies().getFirst(config.getName());
        String requestUrl = determineUrlFromCookie(cookieValue);
        return Optional.ofNullable(requestUrl).map(url -> {
            try {
                return new URL(url).toURI();
            }
            catch (MalformedURLException | URISyntaxException e) {
                log.info("Request url is invalid : url={}, error={}", requestUrl,
                        e.getMessage());
                return null;
            }
        });
    }
}

Это будет зависеть от вас, чтобы реализовать determineUrlFromCookie().

6
задан muhuk 6 December 2008 в 21:48
поделиться

1 ответ

Используя direct_to_template универсальное представление было бы намного более простым. Вы могли использовать переданный в параметрах на одном представлении для определения фактического шаблона в urls.py, если Вы не хотите добавлять запись для каждой страницы:

r'^foo/(?P<template_name>.+)/$','direct_to_template', {'template': 'foo_index.html'}),

Затем импортируйте шаблон в Вашем foo_index.html:

{% include template_name %}
9
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: