mirror of
				https://github.com/django/django.git
				synced 2025-10-29 08:36:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from __future__ import unicode_literals
 | |
| 
 | |
| import os
 | |
| 
 | |
| from django.core.exceptions import ValidationError
 | |
| from django.db import models
 | |
| from django.utils.encoding import python_2_unicode_compatible
 | |
| from django.utils._os import upath
 | |
| 
 | |
| 
 | |
| class Person(models.Model):
 | |
|     name = models.CharField(max_length=100)
 | |
| 
 | |
| class Triple(models.Model):
 | |
|     left = models.IntegerField()
 | |
|     middle = models.IntegerField()
 | |
|     right = models.IntegerField()
 | |
| 
 | |
|     class Meta:
 | |
|         unique_together = (('left', 'middle'), ('middle', 'right'))
 | |
| 
 | |
| class FilePathModel(models.Model):
 | |
|     path = models.FilePathField(path=os.path.dirname(upath(__file__)), match=".*\.py$", blank=True)
 | |
| 
 | |
| @python_2_unicode_compatible
 | |
| class Publication(models.Model):
 | |
|     title = models.CharField(max_length=30)
 | |
|     date_published = models.DateField()
 | |
| 
 | |
|     def __str__(self):
 | |
|         return self.title
 | |
| 
 | |
| @python_2_unicode_compatible
 | |
| class Article(models.Model):
 | |
|     headline = models.CharField(max_length=100)
 | |
|     publications = models.ManyToManyField(Publication)
 | |
| 
 | |
|     def __str__(self):
 | |
|         return self.headline
 | |
| 
 | |
| class CustomFileField(models.FileField):
 | |
|     def save_form_data(self, instance, data):
 | |
|         been_here = getattr(self, 'been_saved', False)
 | |
|         assert not been_here, "save_form_data called more than once"
 | |
|         setattr(self, 'been_saved', True)
 | |
| 
 | |
| class CustomFF(models.Model):
 | |
|     f = CustomFileField(upload_to='unused', blank=True)
 | |
| 
 | |
| class RealPerson(models.Model):
 | |
|     name = models.CharField(max_length=100)
 | |
| 
 | |
|     def clean(self):
 | |
|         if self.name.lower() == 'anonymous':
 | |
|             raise ValidationError("Please specify a real name.")
 | |
| 
 | |
| class Author(models.Model):
 | |
|     publication = models.OneToOneField(Publication, null=True, blank=True)
 | |
|     full_name = models.CharField(max_length=255)
 | |
| 
 | |
| class Author1(models.Model):
 | |
|     publication = models.OneToOneField(Publication, null=False)
 | |
|     full_name = models.CharField(max_length=255)
 | |
| 
 | |
| class Homepage(models.Model):
 | |
|     url = models.URLField()
 | |
| 
 | |
| class Document(models.Model):
 | |
|     myfile = models.FileField(upload_to='unused', blank=True)
 | |
| 
 | |
| class Edition(models.Model):
 | |
|     author = models.ForeignKey(Person)
 | |
|     publication = models.ForeignKey(Publication)
 | |
|     edition = models.IntegerField()
 | |
|     isbn = models.CharField(max_length=13, unique=True)
 | |
| 
 | |
|     class Meta:
 | |
|         unique_together = (('author', 'publication'), ('publication', 'edition'),)
 |