Pergunta

Eu estou fazendo um monte de trabalho JavaScript no navegador e gostaria de ter alguns dos que a funcionalidade back-end no front-end. Especificamente, seria bom ter a funções get(), save(), all() e count() disponível para o cliente. Além disso, seria ótimo ter a lista de campos do modelo já está disponível no objeto JavaScript gerado.

Se o usuário atual pode ler ou gravar os registros é uma questão separada que irá lidar com o uso de autenticação do Django. Por enquanto, a recuperação seria um começo.

Em suma, existe código que iria gerar um modelo de JavaScript de um modelo de Django?

Graças.

Foi útil?

Solução

Parece que você está procurando um interface de JavaScript completa para as APIs modelo e queryset. Eu não posso imaginar que isso já foi feito ou até mesmo ser uma tarefa simples. Não só você precisa gerar alguma forma instâncias JavaScript de modelos (muito mais do que serialização JSON fornece, desde que você também quer os métodos), mas você precisa para expor um serviço web que pode lidar com cada tipo de chamada DB-API. Eu não posso sequer começar a imaginar por onde começar e as questões de segurança pode ser muito numerosas para superar facilmente.

A abordagem alternativa (e mais simples) seria usar um dos vários módulos Django descanso e JSON serialização. Você pode executar uma solicitação AJAX GET em um recurso, que pode ser identificado por uma série de parâmetros de consulta que seria equivalente a filtros queryset acorrentados. Este voltaria a representação JSON de valores do modelo. Você pode então modificar o objeto JavaScript e usar uma solicitação AJAX POST sobrecarregado a persistir as alterações de volta para o servidor. Você não teria acesso aos métodos do modelo, de modo que a funcionalidade teria que ser reimplantado, mas de fazer quaisquer alterações em um modelo deve ser bastante simples -. Este é basicamente o equivalente JavaScript de usar um formulário HTML para modificar dados

Outras dicas

Você precisa de um serializer dados. Você pode fazê-lo com django construído em serializers. Ele está documentado no site oficial do Django. djangoproject_topics-serialização

Eu comecei um projeto que eu acho que faz exatamente o que você está procurando. Você pode encontrá-lo em github_bumby_jslib .
Ele atualmente suporta apenas get (), mas eu estou esperando para estender isso em breve. Sinta-se livre para contribuir com correções:)

jslib é uma aplicação Django com o objetivo de simplificar a integração AJAX com seus projetos Django.

Parece que você quer JSON codificar seus dados de objeto. Consulte JSON.org para saber mais sobre o formato de dados.

Então tem sido um tempo desde que eu postei a pergunta original e, desde então, tem havido uma série de desenvolvimentos em Djangoland. Não menos do que é uma grande biblioteca pequena chamado Django RESTO Framework. Vou usá-lo em um novo projeto e ele está olhando muito fixe.

http://www.django-rest-framework.org

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