thirdparty/google_appengine/lib/django/tests/regressiontests/serializers_regress/models.py
changeset 2866 a04b1e4126c4
parent 2864 2e0b0af889be
child 2868 9f7f269383f7
equal deleted inserted replaced
2864:2e0b0af889be 2866:a04b1e4126c4
     1 """
       
     2 A test spanning all the capabilities of all the serializers.
       
     3 
       
     4 This class sets up a model for each model field type 
       
     5 (except for image types, because of the PIL dependency).
       
     6 """
       
     7 
       
     8 from django.db import models
       
     9 from django.contrib.contenttypes.models import ContentType
       
    10 
       
    11 # The following classes are for testing basic data 
       
    12 # marshalling, including NULL values.
       
    13 
       
    14 class BooleanData(models.Model):
       
    15     data = models.BooleanField(null=True)
       
    16     
       
    17 class CharData(models.Model):
       
    18     data = models.CharField(maxlength=30, null=True)
       
    19 
       
    20 class DateData(models.Model):
       
    21     data = models.DateField(null=True)
       
    22 
       
    23 class DateTimeData(models.Model):
       
    24     data = models.DateTimeField(null=True)
       
    25 
       
    26 class EmailData(models.Model):
       
    27     data = models.EmailField(null=True)
       
    28 
       
    29 class FileData(models.Model):
       
    30     data = models.FileField(null=True, upload_to='/foo/bar')
       
    31 
       
    32 class FilePathData(models.Model):
       
    33     data = models.FilePathField(null=True)
       
    34 
       
    35 class FloatData(models.Model):
       
    36     data = models.FloatField(null=True, decimal_places=3, max_digits=5)
       
    37 
       
    38 class IntegerData(models.Model):
       
    39     data = models.IntegerField(null=True)
       
    40 
       
    41 # class ImageData(models.Model):
       
    42 #    data = models.ImageField(null=True)
       
    43 
       
    44 class IPAddressData(models.Model):
       
    45     data = models.IPAddressField(null=True)
       
    46 
       
    47 class NullBooleanData(models.Model):
       
    48     data = models.NullBooleanField(null=True)
       
    49 
       
    50 class PhoneData(models.Model):
       
    51     data = models.PhoneNumberField(null=True)
       
    52 
       
    53 class PositiveIntegerData(models.Model):
       
    54     data = models.PositiveIntegerField(null=True)
       
    55 
       
    56 class PositiveSmallIntegerData(models.Model):
       
    57     data = models.PositiveSmallIntegerField(null=True)
       
    58 
       
    59 class SlugData(models.Model):
       
    60     data = models.SlugField(null=True)
       
    61 
       
    62 class SmallData(models.Model):
       
    63     data = models.SmallIntegerField(null=True)
       
    64 
       
    65 class TextData(models.Model):
       
    66     data = models.TextField(null=True)
       
    67 
       
    68 class TimeData(models.Model):
       
    69     data = models.TimeField(null=True)
       
    70 
       
    71 class USStateData(models.Model):
       
    72     data = models.USStateField(null=True)
       
    73 
       
    74 class XMLData(models.Model):
       
    75     data = models.XMLField(null=True)
       
    76     
       
    77 class Tag(models.Model):
       
    78     """A tag on an item."""
       
    79     data = models.SlugField()
       
    80     content_type = models.ForeignKey(ContentType)
       
    81     object_id = models.PositiveIntegerField()
       
    82 
       
    83     content_object = models.GenericForeignKey()
       
    84 
       
    85     class Meta:
       
    86         ordering = ["data"]
       
    87 
       
    88 class GenericData(models.Model):
       
    89     data = models.CharField(maxlength=30)
       
    90 
       
    91     tags = models.GenericRelation(Tag)
       
    92     
       
    93 # The following test classes are all for validation
       
    94 # of related objects; in particular, forward, backward,
       
    95 # and self references.
       
    96     
       
    97 class Anchor(models.Model):
       
    98     """This is a model that can be used as 
       
    99     something for other models to point at"""
       
   100     
       
   101     data = models.CharField(maxlength=30)
       
   102     
       
   103 class FKData(models.Model):
       
   104     data = models.ForeignKey(Anchor, null=True)
       
   105     
       
   106 class M2MData(models.Model):
       
   107     data = models.ManyToManyField(Anchor, null=True)
       
   108     
       
   109 class O2OData(models.Model):
       
   110     data = models.OneToOneField(Anchor, null=True)
       
   111 
       
   112 class FKSelfData(models.Model):
       
   113     data = models.ForeignKey('self', null=True)
       
   114     
       
   115 class M2MSelfData(models.Model):
       
   116     data = models.ManyToManyField('self', null=True, symmetrical=False)
       
   117 
       
   118 # The following test classes are for validating the
       
   119 # deserialization of objects that use a user-defined
       
   120 # field as the primary key.
       
   121 # Some of these data types have been commented out
       
   122 # because they can't be used as a primary key on one
       
   123 # or all database backends.
       
   124 
       
   125 class BooleanPKData(models.Model):
       
   126     data = models.BooleanField(primary_key=True)
       
   127     
       
   128 class CharPKData(models.Model):
       
   129     data = models.CharField(maxlength=30, primary_key=True)
       
   130 
       
   131 # class DatePKData(models.Model):
       
   132 #    data = models.DateField(primary_key=True)
       
   133 
       
   134 # class DateTimePKData(models.Model):
       
   135 #    data = models.DateTimeField(primary_key=True)
       
   136 
       
   137 class EmailPKData(models.Model):
       
   138     data = models.EmailField(primary_key=True)
       
   139 
       
   140 class FilePKData(models.Model):
       
   141     data = models.FileField(primary_key=True, upload_to='/foo/bar')
       
   142 
       
   143 class FilePathPKData(models.Model):
       
   144     data = models.FilePathField(primary_key=True)
       
   145 
       
   146 class FloatPKData(models.Model):
       
   147     data = models.FloatField(primary_key=True, decimal_places=3, max_digits=5)
       
   148 
       
   149 class IntegerPKData(models.Model):
       
   150     data = models.IntegerField(primary_key=True)
       
   151 
       
   152 # class ImagePKData(models.Model):
       
   153 #    data = models.ImageField(primary_key=True)
       
   154 
       
   155 class IPAddressPKData(models.Model):
       
   156     data = models.IPAddressField(primary_key=True)
       
   157 
       
   158 class NullBooleanPKData(models.Model):
       
   159     data = models.NullBooleanField(primary_key=True)
       
   160 
       
   161 class PhonePKData(models.Model):
       
   162     data = models.PhoneNumberField(primary_key=True)
       
   163 
       
   164 class PositiveIntegerPKData(models.Model):
       
   165     data = models.PositiveIntegerField(primary_key=True)
       
   166 
       
   167 class PositiveSmallIntegerPKData(models.Model):
       
   168     data = models.PositiveSmallIntegerField(primary_key=True)
       
   169 
       
   170 class SlugPKData(models.Model):
       
   171     data = models.SlugField(primary_key=True)
       
   172 
       
   173 class SmallPKData(models.Model):
       
   174     data = models.SmallIntegerField(primary_key=True)
       
   175 
       
   176 # class TextPKData(models.Model):
       
   177 #     data = models.TextField(primary_key=True)
       
   178 
       
   179 # class TimePKData(models.Model):
       
   180 #    data = models.TimeField(primary_key=True)
       
   181 
       
   182 class USStatePKData(models.Model):
       
   183     data = models.USStateField(primary_key=True)
       
   184 
       
   185 # class XMLPKData(models.Model):
       
   186 #     data = models.XMLField(primary_key=True)
       
   187