Pergunta

Estou implementando James 's Bennett django-contact-form mas ter atingido um obstáculo. Minha página de contato não só contém o formulário, mas também informações adicionais página plana.

Sem reescrever a visão existente dos usos formulário de contato, eu gostaria de ser capaz de envolver, ou cadeia, os pontos de vista. Dessa forma eu poderia injetar algumas informações adicionais através do contexto de modo a que tanto a forma como os dados da página planas pode ser processado dentro do mesmo modelo.

Já ouvi-lo mencionado que isso é possível, mas eu não consigo descobrir como fazê-lo funcionar. Eu criei minha própria visão invólucro, chamado de formulário de contacto vista, e tentou inspecionar o objeto HttpResponse para um atributo que pode acrescentar, mas eu não consigo descobrir qual, se houver, é.

EDIT: James comentou que o código mais recente pode ser encontrada nova aqui em BitBucket.

Foi útil?

Solução

  1. Escrever um invólucro que usa a URL para procurar o objeto página plana apropriada.
  2. A partir do seu invólucro, ligue para (e voltar a resposta) a vista formulário de contato, passando a página plana no argumento extra_context (que está lá para, entre outras coisas, precisamente este tipo de caso de uso).
  3. Não há uma terceira etapa.

Outras dicas

Há um processador de contexto que podem fazer o que quiser.

http://docs.djangoproject.com/en/dev/ ref / templates / api /

Você provavelmente pode adicionar suas várias peças de "informação da página flat" para o contexto.

processadores de contexto são o que você está pensando. E render_to_response é irrelevante. A peça necessária de informações é se o ponto de vista usa RequestContext ou não, que é o que ativa processadores de contexto.

Além destas, não há nenhuma maneira de vista "cadeia" para adicionar ao contexto - você pode quebrar uma vista em outro e alterar os dados que vão para ele, mas você não pode adicionar à contexto que caminho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top