Создание кнопки для обновления в постах django с помощью javascript fetch
У меня есть html, который отображает посты пользователя. В то же время, модель постов доступна через fetch (javascript). Я хочу создать кнопку для обновления содержимого постов, которые django показывает, но с помощью fetch. Проблема в том, что когда кнопка создается в моем коде, вместо того, чтобы создать кнопку для каждого поста, она создает 5 кнопок обновления в первом посте, и это логично, потому что это id, который я ему даю. Как я могу добавить кнопку в каждый пост, который django показывает с помощью javascript?
Примечание: проект является тестовым для реального проекта.
Я хочу добавить кнопку обновления с javascritp в django posts для обновления поля
Мой html:
<div id="formulario" class="form-style" style="border: 5px solid rgb(255, 170, 0);">
<h1>User's Posts</h1>
{% for post in object_list %}
<div id="posts-div" style="border: 5px solid red;">
<h3 id="user">{{post.usuario}} - User with id: {{post.id}}</h3>
<h3>{{post.contenido}} - {{post.id}}</h3>
</div>
{% endfor %}
<h1>Agregar</h1>
<form method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save">
</form>
</div>
Мой views.py
class PostsViewSet (viewsets.ModelViewSet):
queryset = Posts.objects.all()
serializer_class = PostsSerializer
class PostView(CreateView, ListView):
model = Posts
fields = ['contenido','edad','usuario']
template_name = 'api_app/posts.html'
success_url ='.'
Мой serializer.py:
from rest_framework import serializers
from .models import Posts
class PostsSerializer(serializers.ModelSerializer):
class Meta:
model = Posts
fields = ['usuario', 'edad', 'contenido']
Мой javascript:
addEventListener('DOMContentLoaded', (event) => {
fetch('/api/posts')
.then(response => response.json())
.then(data => {
data.forEach(post => {
console.log(post.usuario)
post_div = document.getElementById('posts-div');
update_post = document.createElement('button');
update_post.innerHTML = 'Update';
post_div.appendChild(update_post);
});
});
});
Я знаю, что api не определяет метод, но сначала я попытался создать кнопку в каждом посте
Я решил проблему таким образом. Пока (еще не тестировал) все работает. Разница в том, что querySelectorAll переменная i и i++
data.forEach(post => {
) console.log(post.usuario);
post_div = document.querySelectorAll('.post-div-class')[i];
update_post = document.createElement('button');
update_post.innerHTML = 'Update';
post_div.appendChild(update_post);
++i;
console.log(i);
});