You can look towards  Django Q-objects 
<https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects>
. 

This filtering method is implemented in the MultiChoiceExt filter 
<https://github.com/vb64/django.admin.filters#multichoiceext-filter> of my 
DjangoAdminFilters library for using in Django admin.

For filtering in regular Django views, you can use this code as a starting 
point.

четверг, 9 февраля 2023 г. в 16:21:24 UTC+4, Chelsea Fan: 

> understood, is there any way to filter objects by method value?
>
> On Thu, Feb 9, 2023 at 4:42 PM Andréas Kühne <[email protected]> 
> wrote:
>
>> No.
>>
>> Ordering works by using the database to order the models. It therefore 
>> needs to be a database field - otherwise the database can't order by the 
>> field?
>>
>> Regards,
>>
>> Andréas
>>
>>
>> Den tors 9 feb. 2023 kl 12:09 skrev Chelsea Fan <[email protected]>:
>>
>>> hello guys, Is it possible to use model method value to ordering model 
>>> objects in meta class?
>>>
>>> class Post(models.Model):
>>>     title = models.CharField(max_length=255, verbose_name="ady")
>>>     text = RichTextField(verbose_name="text")
>>>     tagList = models.ManyToManyField(Tag, verbose_name="taglar", 
>>> related_query_name="tagList")
>>>     image = models.ImageField(upload_to="postImage/", verbose_name=
>>> "surat")
>>>     seen = models.ManyToManyField(UserId,verbose_name="görülen sany", 
>>> blank=True, related_name="gorulen")
>>>     like = models.ManyToManyField(UserId,verbose_name="like sany", blank
>>> =True)
>>>     share = models.PositiveIntegerField(verbose_name="paýlaşylan sany", 
>>> null=True, blank=True, default="0")
>>>     createdAt = models.DateTimeField(auto_now_add=True, 
>>> verbose_name="goşulan 
>>> güni")
>>>
>>>     class Meta:
>>>         verbose_name_plural="Makalalar"
>>>         # ordering = ("-createdAt",)
>>>         ordering = ["-hotness",]
>>>
>>>     def __str__(self):
>>>         return self.title
>>>
>>>     def likes(self):
>>>         return self.like.count()
>>>
>>>     likes.short_description = "Like sany"
>>>     likes.allow_tags = True
>>>
>>>     def seens(self):
>>>         return self.seen.count()
>>>
>>>     seens.short_description = "Görülen sany"
>>>     seens.allow_tags = True
>>>
>>>     @property
>>>     def hotness(self):
>>>         return self.likes() + self.seens() + self.share
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Django users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/django-users/CAJwZndfmes4g2KWUB3Fz6wNRORQ40Fxj_NYwYKWCF6DX96OVyg%40mail.gmail.com
>>>  
>>> <https://groups.google.com/d/msgid/django-users/CAJwZndfmes4g2KWUB3Fz6wNRORQ40Fxj_NYwYKWCF6DX96OVyg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-users/CAK4qSCfpaVQ1YXMbVae26RLgsYYBcLRMcpgQOEm9z3%2B6NpN5Ww%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/django-users/CAK4qSCfpaVQ1YXMbVae26RLgsYYBcLRMcpgQOEm9z3%2B6NpN5Ww%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/12296d6e-69f3-4f4b-8c12-2bc7ac141ba8n%40googlegroups.com.

Reply via email to