Ejemplo n.º 1
0
class StatTestModel(models.Model):
    """
    To test postgres-specific aggregation functions for statistics
    """
    int1 = models.IntegerField()
    int2 = models.IntegerField()
    related_field = models.ForeignKey(AggregateTestModel, models.SET_NULL, null=True)
Ejemplo n.º 2
0
class Friendship(models.Model):
    # Table Column Fields
    from_friend_country = models.ForeignKey(Country,
                                            models.CASCADE,
                                            related_name="from_friend_country")
    from_friend_id = models.IntegerField()
    to_friend_country_id = models.IntegerField()
    to_friend_id = models.IntegerField()

    # Relation Fields
    from_friend = models.ForeignObject(
        Person,
        on_delete=models.CASCADE,
        from_fields=['from_friend_country', 'from_friend_id'],
        to_fields=['person_country_id', 'id'],
        related_name='from_friend',
    )

    to_friend_country = models.ForeignObject(
        Country,
        from_fields=['to_friend_country_id'],
        to_fields=['id'],
        related_name='to_friend_country',
        on_delete=models.CASCADE,
    )

    to_friend = models.ForeignObject(
        Person,
        from_fields=['to_friend_country_id', 'to_friend_id'],
        to_fields=['person_country_id', 'id'],
        related_name='to_friend',
        on_delete=models.CASCADE,
    )
Ejemplo n.º 3
0
        class Model(models.Model):
            one = models.IntegerField()
            two = models.IntegerField()

            class Meta:
                # unique_together can be a simple tuple
                unique_together = ('one', 'two')
Ejemplo n.º 4
0
class IntegerPK(models.Model):
    i = models.IntegerField(primary_key=True)
    j = models.IntegerField(unique=True)

    class Meta:
        apps = new_apps
        db_table = "INTEGERPK"  # uppercase to ensure proper quoting
Ejemplo n.º 5
0
class Membership(models.Model):
    # Table Column Fields
    membership_country = models.ForeignKey(Country, models.CASCADE)
    date_joined = models.DateTimeField(default=datetime.datetime.now)
    invite_reason = models.CharField(max_length=64, null=True)
    person_id = models.IntegerField()
    group_id = models.IntegerField(blank=True, null=True)

    # Relation Fields
    person = models.ForeignObject(
        Person,
        from_fields=['person_id', 'membership_country'],
        to_fields=['id', 'person_country_id'],
        on_delete=models.CASCADE,
    )
    group = models.ForeignObject(
        Group,
        from_fields=['group_id', 'membership_country'],
        to_fields=['id', 'group_country'],
        on_delete=models.CASCADE,
    )

    class Meta:
        ordering = ('date_joined', 'invite_reason')

    def __str__(self):
        group_name = self.group.name if self.group_id else 'NULL'
        return "%s is a member of %s" % (self.person.name, group_name)
Ejemplo n.º 6
0
class Triple(models.Model):
    left = models.IntegerField()
    middle = models.IntegerField()
    right = models.IntegerField()

    class Meta:
        unique_together = (('left', 'middle'), ('middle', 'right'))
Ejemplo n.º 7
0
 def test_optimize_through_fields(self):
     """
     field-level through checking is working. This should manage to collapse
     model Foo to nonexistence, and model Bar to a single IntegerField
     called "width".
     """
     self.assertOptimizesTo(
         [
             migrations.CreateModel(
                 "Foo", [("name", models.CharField(max_length=255))]),
             migrations.CreateModel("Bar",
                                    [("size", models.IntegerField())]),
             migrations.AddField("Foo", "age", models.IntegerField()),
             migrations.AddField("Bar", "width", models.IntegerField()),
             migrations.AlterField("Foo", "age", models.IntegerField()),
             migrations.RenameField("Bar", "size", "dimensions"),
             migrations.RemoveField("Foo", "age"),
             migrations.RenameModel("Foo", "Phou"),
             migrations.RemoveField("Bar", "dimensions"),
             migrations.RenameModel("Phou", "Fou"),
             migrations.DeleteModel("Fou"),
         ],
         [
             migrations.CreateModel("Bar",
                                    [("width", models.IntegerField())]),
         ],
     )
Ejemplo n.º 8
0
class Migration(migrations.Migration):

    replaces = [
        ("migrations", "0001_initial"),
        ("migrations", "0002_second"),
    ]

    operations = [

        migrations.CreateModel(
            "Author",
            [
                ("id", models.AutoField(primary_key=True)),
                ("name", models.CharField(max_length=255)),
                ("slug", models.SlugField(null=True)),
                ("age", models.IntegerField(default=0)),
                ("rating", models.IntegerField(default=0)),
            ],
        ),

        migrations.CreateModel(
            "Book",
            [
                ("id", models.AutoField(primary_key=True)),
                ("author", models.ForeignKey("migrations.Author", models.SET_NULL, null=True)),
            ],
        ),

    ]
Ejemplo n.º 9
0
 def test_create_model_alter_field(self):
     """
     AlterField should optimize into CreateModel.
     """
     managers = [('objects', EmptyManager())]
     self.assertOptimizesTo(
         [
             migrations.CreateModel(
                 name="Foo",
                 fields=[("name", models.CharField(max_length=255))],
                 options={'verbose_name': 'Foo'},
                 bases=(UnicodeModel, ),
                 managers=managers,
             ),
             migrations.AlterField("Foo", "name", models.IntegerField()),
         ],
         [
             migrations.CreateModel(
                 name="Foo",
                 fields=[
                     ("name", models.IntegerField()),
                 ],
                 options={'verbose_name': 'Foo'},
                 bases=(UnicodeModel, ),
                 managers=managers,
             ),
         ],
     )
Ejemplo n.º 10
0
class UniqueForDateModel(models.Model):
    start_date = models.DateField()
    end_date = models.DateTimeField()
    count = models.IntegerField(unique_for_date="start_date",
                                unique_for_year="end_date")
    order = models.IntegerField(unique_for_month="end_date")
    name = models.CharField(max_length=100)
Ejemplo n.º 11
0
class ModelToValidate(models.Model):
    name = models.CharField(max_length=100)
    created = models.DateTimeField(default=datetime.now)
    number = models.IntegerField(db_column='number_val')
    parent = models.ForeignKey(
        'self',
        models.SET_NULL,
        blank=True,
        null=True,
        limit_choices_to={'number': 10},
    )
    email = models.EmailField(blank=True)
    ufm = models.ForeignKey(
        'UniqueFieldsModel',
        models.SET_NULL,
        to_field='unique_charfield',
        blank=True,
        null=True,
    )
    url = models.URLField(blank=True)
    f_with_custom_validator = models.IntegerField(
        blank=True, null=True, validators=[validate_answer_to_universe])
    f_with_iterable_of_validators = models.IntegerField(
        blank=True, null=True, validators=(validate_answer_to_universe, ))
    slug = models.SlugField(blank=True)

    def clean(self):
        super().clean()
        if self.number == 11:
            raise ValidationError('Invalid number supplied!')
Ejemplo n.º 12
0
class BookXtra(models.Model):
    isbn = models.CharField(max_length=16, unique=True)
    suffix1 = models.IntegerField(blank=True, default=0)
    suffix2 = models.IntegerField(blank=True, default=0)

    class Meta:
        unique_together = (('suffix1', 'suffix2'))
        abstract = True
Ejemplo n.º 13
0
class Item(models.Model):
    name = models.CharField(max_length=15)
    text = models.TextField(default="xyzzy")
    value = models.IntegerField()
    other_value = models.IntegerField(default=0)

    def __str__(self):
        return self.name
Ejemplo n.º 14
0
class CustomMessagesModel(models.Model):
    other = models.IntegerField(blank=True, null=True)
    number = models.IntegerField(db_column='number_val',
                                 error_messages={
                                     'null': 'NULL',
                                     'not42': 'AAARGH',
                                     'not_equal': '%s != me'
                                 },
                                 validators=[validate_answer_to_universe])
Ejemplo n.º 15
0
            class M(models.Model):
                foo = models.IntegerField()
                bar = models.IntegerField()
                baz = models.IntegerField()

                Meta = type('Meta', (), {
                    'unique_together': unique_together,
                    'apps': Apps()
                })
Ejemplo n.º 16
0
class Car(models.Model):
    name = models.CharField(max_length=10)
    mileage = models.IntegerField()
    top_speed = models.IntegerField(help_text="In miles per hour.")
    cars = models.Manager()
    fast_cars = FastCarManager()

    def __str__(self):
        return self.name
Ejemplo n.º 17
0
class Product(models.Model):
    name = models.CharField(max_length=255)
    price = models.IntegerField()
    discounted_price = models.IntegerField()

    class Meta:
        constraints = [
            models.CheckConstraint(
                models.Q(price__gt=models.F('discounted_price')),
                'price_gt_discounted_price')
        ]
Ejemplo n.º 18
0
class UniqueTogether(models.Model):
    field1 = models.IntegerField()
    field2 = models.CharField(max_length=10)
    from_field = models.IntegerField(db_column='from')
    non_unique = models.IntegerField(db_column='non__unique_column')
    non_unique_0 = models.IntegerField(db_column='non_unique__column')

    class Meta:
        unique_together = [
            ('field1', 'field2'),
            ('from_field', 'field1'),
            ('non_unique', 'non_unique_0'),
        ]
Ejemplo n.º 19
0
        class Answer(models.Model):
            question = models.ForeignKey(Question, models.CASCADE)
            order = models.IntegerField()

            class Meta:
                order_with_respect_to = 'question'
                ordering = ['order']
Ejemplo n.º 20
0
class UserStat(models.Model):
    user = models.OneToOneField(User, models.CASCADE, primary_key=True)
    posts = models.IntegerField()
    results = models.ForeignKey(UserStatResult, models.CASCADE)

    def __str__(self):
        return 'UserStat, posts = %s' % (self.posts,)
Ejemplo n.º 21
0
class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    fun = models.BooleanField(default=False)

    favorite_book = models.ForeignKey('Book',
                                      models.SET_NULL,
                                      null=True,
                                      related_name='favorite_books')
    favorite_thing_type = models.ForeignKey('contenttypes.ContentType',
                                            models.SET_NULL,
                                            null=True)
    favorite_thing_id = models.IntegerField(null=True)
    favorite_thing = GenericForeignKey('favorite_thing_type',
                                       'favorite_thing_id')

    objects = PersonManager()
    fun_people = FunPeopleManager()
    boring_people = BoringPeopleManager()

    custom_queryset_default_manager = CustomQuerySet.as_manager()
    custom_queryset_custom_manager = CustomManager('hello')
    custom_init_queryset_manager = CustomInitQuerySet.as_manager()

    def __str__(self):
        return "%s %s" % (self.first_name, self.last_name)
Ejemplo n.º 22
0
        class Bar(Foo):
            field2 = models.IntegerField()

            class Meta:
                indexes = [
                    models.Index(fields=['field2', 'field1'], name='name')
                ]
Ejemplo n.º 23
0
class Season(models.Model):
    year = models.PositiveSmallIntegerField()
    gt = models.IntegerField(null=True, blank=True)
    nulled_text_field = NulledTextField(null=True)

    def __str__(self):
        return str(self.year)
Ejemplo n.º 24
0
class AggregateTestModel(models.Model):
    """
    To test postgres-specific general aggregation functions
    """
    char_field = models.CharField(max_length=30, blank=True)
    integer_field = models.IntegerField(null=True)
    boolean_field = models.BooleanField(null=True)
Ejemplo n.º 25
0
class RangeLookupsModel(PostgreSQLModel):
    parent = models.ForeignKey(RangesModel, models.SET_NULL, blank=True, null=True)
    integer = models.IntegerField(blank=True, null=True)
    big_integer = models.BigIntegerField(blank=True, null=True)
    float = models.FloatField(blank=True, null=True)
    timestamp = models.DateTimeField(blank=True, null=True)
    date = models.DateField(blank=True, null=True)
Ejemplo n.º 26
0
class Person(models.Model):
    name = models.CharField(max_length=20)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
    pid = models.IntegerField(null=True, default=None)

    def __str__(self):
        return self.name
Ejemplo n.º 27
0
class Membership(models.Model):
    person = models.ForeignKey('Person', models.CASCADE)
    group = models.ForeignKey('Group', models.CASCADE)
    price = models.IntegerField(default=100)

    def __str__(self):
        return "%s is a member of %s" % (self.person.name, self.group.name)
Ejemplo n.º 28
0
class DerivedM(BaseM):
    customPK = models.IntegerField(primary_key=True)
    derived_name = models.CharField(max_length=100)

    def __str__(self):
        return "PK = %d, base_name = %s, derived_name = %s" % (
            self.customPK, self.base_name, self.derived_name)
Ejemplo n.º 29
0
class Author(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()
    friends = models.ManyToManyField('self', blank=True)

    def __str__(self):
        return self.name
Ejemplo n.º 30
0
        class Model(models.Model):
            age = models.IntegerField()

            class Meta:
                constraints = [
                    models.CheckConstraint(models.Q(age__gte=18), 'is_adult')
                ]