Как добавить счетчик, который увеличивается после создания объекта в Django?
Я делаю простой сайт со списком, который отображает список фильмов, которые я хочу посмотреть. В основном, я использую форму для добавления фильма в список. Ничего сложного, но я хочу отображать переменную count рядом с каждым фильмом, который я добавляю в список, от 1 до 10, и я хочу, чтобы она увеличивалась/уменьшалась, если я удаляю/добавляю новый фильм. Где мне нужно добавить это? У меня есть отдельные представления для добавления/удаления фильмов (объектов)
Вы хотите просто запросить базу данных о том, сколько фильмов находится в списке, поскольку это эквивалентная информация. Когда вы можете вывести состояние, вы, вероятно, должны это сделать, если только нет серьезных последствий для производительности. Чтобы получить "счетчик", вам, по сути, нужен код типа:
MovieType.objects.count()
Я думаю, хотя я не использовал Django уже много лет. Суть в том, чтобы посчитать объекты в базе данных
Выделите часть вопроса: " Я хочу отобразить переменную count рядом с каждым фильмом, который я добавляю в свой список от 1 до 10, и я хочу, чтобы она увеличивалась/уменьшалась в зависимости от того, удаляю/добавляю ли я новый фильм".
Я думаю, что вам нужно использовать счетчик forloop
при итерации по списку фильмов. Например, в вашем шаблоне:
# i.e.: If your queryset name is movies
<h3>There are {{ movies.count }} movies on my list.</h3> # The display of the total amount of movies in the database
# I'm using a table to layout list
<table>
<thead>
<th>No.</th>
<th>Movie Name</th>
# other columns
</thead>
<tbody>
{% for movie in movies %}
<tr>
# within the loop, there's a counter called 'forloop.counter'. It starts counting from 1 to n number of movies.
<td>{{ forloop.counter }}</td>
<td>{{ movie.name }}</td>
# other movie details
</tr>
{% endfor %}
</tbody>
</table>
Допустим, у нас в списке 3 фильма, тогда список/таблица будет выглядеть так:
# There are 3 movies on my list.
# No. Name Other details
# 1 Jack Sparrow Team Details
# 2 Game Night Details
# 3 The Great Stackoverflow Show Details
Надеюсь, это то, что вы имели в виду.