mirror of
				https://github.com/django/django.git
				synced 2025-10-29 08:36:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| 6. Specifying ordering
 | |
| 
 | |
| Specify default ordering for a model using the ``ordering`` attribute, which
 | |
| should be a list or tuple of field names. This tells Django how to order
 | |
| ``QuerySet`` results.
 | |
| 
 | |
| If a field name in ``ordering`` starts with a hyphen, that field will be
 | |
| ordered in descending order. Otherwise, it'll be ordered in ascending order.
 | |
| The special-case field name ``"?"`` specifies random order.
 | |
| 
 | |
| The ordering attribute is not required. If you leave it off, ordering will be
 | |
| undefined -- not random, just undefined.
 | |
| """
 | |
| 
 | |
| from django.db import models
 | |
| from django.utils.encoding import python_2_unicode_compatible
 | |
| 
 | |
| 
 | |
| @python_2_unicode_compatible
 | |
| class Article(models.Model):
 | |
|     headline = models.CharField(max_length=100)
 | |
|     pub_date = models.DateTimeField()
 | |
|     class Meta:
 | |
|         ordering = ('-pub_date', 'headline')
 | |
| 
 | |
|     def __str__(self):
 | |
|         return self.headline
 | |
| 
 | |
| @python_2_unicode_compatible
 | |
| class ArticlePKOrdering(models.Model):
 | |
|     headline = models.CharField(max_length=100)
 | |
|     pub_date = models.DateTimeField()
 | |
|     class Meta:
 | |
|         ordering = ('-pk',)
 | |
| 
 | |
|     def __str__(self):
 | |
|         return self.headline
 |