Я создаю приложение, в котором я могу отображать пользовательские свойства, но проблема, с которой я сталкиваюсь, заключается в создании определенных категорий свойств.
Например, если пользователь нажимает кнопку Condour Apartment, то должны отображаться только эти свойства.Я хочу знать, как мы можем отображать те свойства, которые связаны названием этой категории.
Вот модели.py для свойств и категории
class Category(models.Model):
title = models.CharField(max_length=20)
def __str__(self):
return self.title
class Property(models.Model):
title = models.CharField(max_length = 210,default = 'None')
STATUS_CHOICES = (
('R','Rent'),
('S','Sale'),
)
status = models.CharField(max_length = 210,choices = STATUS_CHOICES,default = 'None')
price = models.IntegerField()
area = models.CharField(max_length = 210,default = 'None')
ROOM_CHOICES = (
('1','1'),
('2','2'),
('3','3'),
('4','4'),
('MORE','More'),
)
rooms = models.CharField(
max_length = 210,
choices = ROOM_CHOICES,
default = 'None')
BATHROOM_CHOICES = (
('1','1'),
('2','2'),
('3','3'),
('4','4'),
)
bathroom = models.CharField(max_length = 210, choices = BATHROOM_CHOICES, default = 'None')
address = models.CharField(max_length = 210, default = 'None')
state = models.CharField(max_length = 210, default = 'None')
code = models.CharField(max_length = 210, default = 'None')
images = models.ImageField(upload_to = 'images',)
info = models.TextField(max_length = 1000, default = 'None')
parking = models.BooleanField(default = False)
air = models.BooleanField(default = False)
swimming = models.BooleanField(default = False)
laundry = models.BooleanField(default = False)
dealer_name = models.CharField(max_length = 210, default = 'None')
dealer_email = models.EmailField(max_length = 210, default = 'abc@gmail.com')
dealer_number = models.CharField(max_length = 210, default = 'Not mentioned')
user = models.ForeignKey(User, related_name = 'user')
timpestamp = models.DateTimeField(auto_now_add = True)
category = models.ManyToManyField(Category)
def get_absolute_url(self,*args,**kwargs):
return reverse('profile_details:property', kwargs={'pk':self.pk,})
def __str__(self):
return self.title
Вот мои views.py для категориисписок недвижимости
def Properties_Category_List(request):
category_count = get_category_count()
most_recent = models.Property.objects.order_by('-timpestamp')[:2]
# I want to filter the model by the category title it was connected with
model = models.Property.objects.filter(category__title='Multi Family')
paginator = Paginator(model,1)
page_var = 'list'
page = request.GET.get(page_var)
try:
paginated_queryset = paginator.page(page)
except PageNotAnInteger:
paginated_queryset = paginator.page(1)
except EmptyPage:
paginated_queryset = paginator.page(page)
index = paginated_queryset.number - 1
max_index = len(paginator.page_range)
start_index = index - 3 if index >= 3 else 0
end_index = index + 3 if index <= max_index - 3 else max_index
page_range = list(paginator.page_range)[start_index:end_index]
context = {
"property":paginated_queryset,
'page_var':page_var,
'page_range':page_range,
'most_recent':most_recent,
'category_count':category_count
}
template_name = 'properties/properties_category_list.html'
return render(request,template_name,context)