Je sauve un brouillon de mon formulaire en utilisant AJAX (et un peu d'Angular).Pourquoi je reçois ' quand AJAX enregistre (et repeuple) ma forme dans Django
<!-- index.html -->
...
<input id="id_title" name="title" ng-model="title" placeholder="Question Title" type="text" value="" required />
...
<script>
app.controller("addQuestionCtrl", function($http) {
$scope.title = '{% if form.title.value is not None %}{{ form.title.value }}{% endif %}';
...
$interval(function() {
...
data = {title:''+$scope.title, ...};
$http.post("{% url 'save_draft' %}", data).then(function(response) {
...
}, function failureCallback(error) {
...
});
}, 10000);
});
</script>
C'est tout fonctionne très bien et envoie un '
comme '
. Dans mon view.py
je convertir les données et le stocker dans la session:
def save_draft(request):
....
posted = json.loads(request.body.decode("utf-8"))
...
request.session['draft'] = {
'title': posted.get('title', None),
...
}
puis remplir les champs correspondants lorsque la page se charge
def question_add(request):
....
if request.method == 'POST':
....
else:
draft_question = request.session.get('draft', False)
if draft_question:
form = QuestionAddForm(initial={
'title':draft_question['title'],
...
})
Malheureusement, cela tourne cette
dans ce
ce n'est pas un problème d'encodage sur le côté client que le champ rend comme
<input id="id_title" name="title" ng-model="title" ... value="'title in quotes'" />
Je ne suis pas à pas pourquoi cela se produit :(
Vous devez plutôt implémenter la méthode de rendu json dans la classe de formulaire et renvoyer des données qu'il est possible d'analyser avec js du côté du modèle. – mariodev
N'importe quelle chance que vous pourriez développer sur cela!?! – Sevenearths