Hi everyone !
I’m trying to use a form in order to filter my objects.
index.html
<form id="searchForm" action="" method="GET">
<div>
<input type="radio" id="offers" name="search_type" value="Offers" checked=True>
<label type="text">Offers</label>
<input type="radio" id="requests" name="search_type" value="Requests">
<label type="text">Requests</label>
</div>
<div>
{{ form.ad_category }}
<input type="text" name="tags" placeholder="Type in Tags">
</div>
<input type="submit" value="Search">
</form>
<div id="ad_list">
{% for ad in ad_list %}
<div class="box">
<div class="box_title">
{{ ad.ad_title }}
</div>
<br>
{{ ad.ad_description }}
<br>
<p>Price : </p>
{{ ad.ad_price }}
</div>
{% endfor %}
</div>
models.py
from django.db import models
# Create your models here.
class CategoryModel(models.Model):
category_name = models.CharField(max_length=140, default="")
def __str__(self):
return self.category_name
class TagModel(models.Model):
tag_name = models.CharField(max_length=20, default="")
def __str__(self):
return self.tag_name
class AdTypeModel(models.Model):
type_name = models.CharField(max_length=20, default="")
def __str__(self):
return self.type_name
class AdModel(models.Model):
ad_title = models.CharField(max_length=40, default="")
ad_description = models.CharField(max_length=320, default="")
ad_creation_date = models.DateTimeField(auto_now_add=True, blank=True)
ad_price = models.PositiveIntegerField(default=0)
ad_category = models.ForeignKey(CategoryModel, related_name="ad_category", on_delete=models.CASCADE, default="")
ad_tags = models.ForeignKey(TagModel, related_name="ad_tags", on_delete=models.CASCADE, default="")
ad_type = models.ForeignKey(AdTypeModel, related_name="ad_type", on_delete=models.CASCADE)
def __str__(self):
return self.ad_title
What I’d like to do is to use what the user indicated in the form “searchForm”. If we read the GET method of this form we obtain something like :
http://localhost:8000/?search_type=Offers&ad_category=1&tags=
How can I reuse those query search items in order to route them through a view which would then allow me to use the Model.objects.filter() function ?
Thanks in advance