mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	git-svn-id: http://code.djangoproject.com/svn/django/trunk@9241 bcc190cf-cafb-0310-a4f2-bffc1f526a37
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.db import models
 | |
| from django.contrib import admin
 | |
| 
 | |
| class Section(models.Model):
 | |
|     """
 | |
|     A simple section that links to articles, to test linking to related items
 | |
|     in admin views.
 | |
|     """
 | |
|     name = models.CharField(max_length=100)
 | |
| 
 | |
| class Article(models.Model):
 | |
|     """
 | |
|     A simple article to test admin views. Test backwards compatibility.
 | |
|     """
 | |
|     title = models.CharField(max_length=100)
 | |
|     content = models.TextField()
 | |
|     date = models.DateTimeField()
 | |
|     section = models.ForeignKey(Section)
 | |
| 
 | |
|     def __unicode__(self):
 | |
|         return self.title
 | |
|     
 | |
|     def model_year(self):
 | |
|         return self.date.year
 | |
|     model_year.admin_order_field = 'date'
 | |
| 
 | |
| def callable_year(dt_value):
 | |
|     return dt_value.year
 | |
| callable_year.admin_order_field = 'date'
 | |
| 
 | |
| class ArticleInline(admin.TabularInline):
 | |
|     model = Article
 | |
| 
 | |
| class ArticleAdmin(admin.ModelAdmin):
 | |
|     list_display = ('content', 'date', callable_year, 'model_year', 'modeladmin_year')
 | |
|     list_filter = ('date',)
 | |
| 
 | |
|     def changelist_view(self, request):
 | |
|         "Test that extra_context works"
 | |
|         return super(ArticleAdmin, self).changelist_view(
 | |
|             request, extra_context={
 | |
|                 'extra_var': 'Hello!'
 | |
|             }
 | |
|         )
 | |
|         
 | |
|     def modeladmin_year(self, obj):
 | |
|         return obj.date.year
 | |
|     modeladmin_year.admin_order_field = 'date'
 | |
| 
 | |
| class CustomArticle(models.Model):
 | |
|     content = models.TextField()
 | |
|     date = models.DateTimeField()
 | |
| 
 | |
| class CustomArticleAdmin(admin.ModelAdmin):
 | |
|     """
 | |
|     Tests various hooks for using custom templates and contexts.
 | |
|     """
 | |
|     change_list_template = 'custom_admin/change_list.html'
 | |
|     change_form_template = 'custom_admin/change_form.html'
 | |
|     object_history_template = 'custom_admin/object_history.html'
 | |
|     delete_confirmation_template = 'custom_admin/delete_confirmation.html'
 | |
| 
 | |
|     def changelist_view(self, request):
 | |
|         "Test that extra_context works"
 | |
|         return super(CustomArticleAdmin, self).changelist_view(
 | |
|             request, extra_context={
 | |
|                 'extra_var': 'Hello!'
 | |
|             }
 | |
|         )
 | |
| 
 | |
| class ModelWithStringPrimaryKey(models.Model):
 | |
|     id = models.CharField(max_length=255, primary_key=True)
 | |
| 
 | |
|     def __unicode__(self):
 | |
|         return self.id
 | |
| 
 | |
| class Color(models.Model):
 | |
|     value = models.CharField(max_length=10)
 | |
|     warm = models.BooleanField()   
 | |
|     def __unicode__(self):
 | |
|         return self.value
 | |
| 
 | |
| class Thing(models.Model):
 | |
|     title = models.CharField(max_length=20)
 | |
|     color = models.ForeignKey(Color, limit_choices_to={'warm': True})
 | |
|     def __unicode__(self):
 | |
|         return self.title
 | |
| 
 | |
| class ThingAdmin(admin.ModelAdmin):
 | |
|     list_filter = ('color',)
 | |
| 
 | |
| admin.site.register(Article, ArticleAdmin)
 | |
| admin.site.register(CustomArticle, CustomArticleAdmin)
 | |
| admin.site.register(Section, inlines=[ArticleInline])
 | |
| admin.site.register(ModelWithStringPrimaryKey)
 | |
| admin.site.register(Color)
 | |
| admin.site.register(Thing, ThingAdmin)
 |