Django обновление/рендеринг страницы bloghome с использованием элементов фильтра формы
Допустим, у меня есть HTML-страница (blogHome.html) с различными элементами, такими как этот,
<div class="container-fluid bg-light">
<div class="container">
<div class="row sm-3 justify-content-center">
<div class="col md-3 p-3 d-flex justify-content-center">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="vegetarian" name="vegetarian" checked>
<label for="vegetarian">Vegetarian</label>
</div>
</div>
<div class="col md-3 p-3 d-flex justify-content-center">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="nonvegetarian" name="nonvegetarian" checked>
<label for="nonvegetarian">Non-Vegetarian</label>
</div>
</div>
<div class="col md-3 p-3 d-flex justify-content-center">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="vegan" name="vegan" checked>
<label for="vegan">Vegan</label>
</div>
</div>
</div>
</div>
<div class="container">
<a href="#" class="btn btn-primary" type="submit">Get Filter Values</a>
</div>
<div class="container my-3">
<div class="row">
{% for post in allPosts %}
<div class="col-md-3">
<!-- HERE -->
<div class="card mb-4 shadow-sm">
<!-- HERE -->
<img class="card-img-top" src='{% static "img/tamilnadu.jpg" %}' alt="Card image cap">
<div class="card-body">
<strong class="d-inline-block mb-2 text-primary">Article by {{post.author}} ({{post.views}} views)</strong>
<h3 class="card-title"><a class="text-dark" href="/blog/{{post.slug}}"></a>{{post.title}}</h3>
<div class="mb-1 text-muted">{{post.timestamp}}</div>
<p class="card-text mb-auto"><div class="preview">{{post.content|safe|truncatechars:200}}</div></p>
</div>
</div><!-- /.card -->
</div><!-- /.col-md-3 -->
{% if forloop.counter|divisibleby:4 %}
</div>
<div class="row">{% endif %} {# HERE #}
{% endfor %}
</div><!-- /.row -->
Вот как выглядит мой urls.py
urlpatterns = [
path('', views.blogHome, name="bloghome"),
]
Мой файл models.py
class Post(models.Model):
sno = models.AutoField(primary_key=True)
title = models.CharField(max_length=255)
author = models.CharField(max_length=25)
content = models.TextField()
vegetarian = models.IntegerField(default=0)
nonvegetarian = models.IntegerField(default=0)
vegan = models.IntegerField(default=0)
Используя страницу администратора Django, я создал много постов с целочисленными полями, заполненными для вегетарианцев, невегетарианцев и веганов. На данный момент пользователь может видеть все посты, которые я сохранил в базе данных, через django формы с моей html страницы. Далее у меня есть 3 чекбокса (вегетарианец, невегетарианец и веган). Теперь я хотел бы добиться следующего.
- After user clicks the button Update Blocks, it should get my filters (checkboxes here (vegetarian, nonvegetarian, vegan)) and update the django forms where i display only maybe vegetarin or nonvegetarin or vegan or all possible combinations.
Мой файл views.py
def blogHome(request):
allPosts = Post.objects.all()
#vegetarian = request.GET.get('vegetarian')# Not working
#nonvegetarian = request.GET.get('nonvegetarian')# Not working
#vegan = request.GET.get('vegan')# Not working
context = {'allPosts' : allPosts}
return render(request, "blog/blogHome.html", context)
Пожалуйста, помогите мне решить эту проблему.
