mirror of
				https://github.com/django/django.git
				synced 2025-10-26 07:06:08 +00:00 
			
		
		
		
	git-svn-id: http://code.djangoproject.com/svn/django/trunk@10668 bcc190cf-cafb-0310-a4f2-bffc1f526a37
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| Tests of ModelAdmin validation logic.
 | |
| """
 | |
| 
 | |
| from django.db import models
 | |
| 
 | |
| class Album(models.Model):
 | |
|     title = models.CharField(max_length=150)
 | |
| 
 | |
| class Song(models.Model):
 | |
|     title = models.CharField(max_length=150)
 | |
|     album = models.ForeignKey(Album)
 | |
| 
 | |
|     class Meta:
 | |
|         ordering = ('title',)
 | |
| 
 | |
|     def __unicode__(self):
 | |
|         return self.title
 | |
| 
 | |
| __test__ = {'API_TESTS':"""
 | |
| 
 | |
| >>> from django import forms
 | |
| >>> from django.contrib import admin
 | |
| >>> from django.contrib.admin.validation import validate
 | |
| 
 | |
| # Regression test for #8027: custom ModelForms with fields/fieldsets
 | |
| 
 | |
| >>> class SongForm(forms.ModelForm):
 | |
| ...     pass
 | |
| 
 | |
| >>> class ValidFields(admin.ModelAdmin):
 | |
| ...     form = SongForm
 | |
| ...     fields = ['title']
 | |
| 
 | |
| >>> class InvalidFields(admin.ModelAdmin):
 | |
| ...     form = SongForm
 | |
| ...     fields = ['spam']
 | |
| 
 | |
| >>> validate(ValidFields, Song)
 | |
| >>> validate(InvalidFields, Song)
 | |
| Traceback (most recent call last):
 | |
|     ...
 | |
| ImproperlyConfigured: 'InvalidFields.fields' refers to field 'spam' that is missing from the form.
 | |
| 
 | |
| # Regression test for #9932 - exclude in InlineModelAdmin
 | |
| # should not contain the ForeignKey field used in ModelAdmin.model
 | |
| 
 | |
| >>> class SongInline(admin.StackedInline):
 | |
| ...     model = Song
 | |
| ...     exclude = ['album']
 | |
| 
 | |
| >>> class AlbumAdmin(admin.ModelAdmin):
 | |
| ...     model = Album
 | |
| ...     inlines = [SongInline]
 | |
| 
 | |
| >>> validate(AlbumAdmin, Album)
 | |
| Traceback (most recent call last):
 | |
|     ...
 | |
| ImproperlyConfigured: SongInline cannot exclude the field 'album' - this is the foreign key to the parent model Album.
 | |
| 
 | |
| """}
 |