示例#1
0
class HybridSpecies(models.Model):
    name = models.CharField(max_length=50)
    parent_1 = models.ForeignKey(Species, models.CASCADE, related_name='child_1')
    parent_2 = models.ForeignKey(Species, models.CASCADE, related_name='child_2')

    def __str__(self):
        return self.name
示例#2
0
class SimulationRun(models.Model):
    start = models.ForeignKey(Time, models.CASCADE, null=True, related_name='+')
    end = models.ForeignKey(Time, models.CASCADE, null=True, related_name='+')
    midpoint = models.TimeField()

    def __str__(self):
        return "%s (%s to %s)" % (self.midpoint, self.start, self.end)
示例#3
0
class Intermediate(models.Model):
    a02 = models.ForeignKey(A02, models.CASCADE, db_column="a01_id")
    c02 = models.ForeignKey(C02, models.CASCADE, db_column="c01_id")

    class Meta:
        db_table = 'd01'
        managed = False
示例#4
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)
示例#5
0
class TaggedItem(models.Model):
    tag = models.SlugField()
    content_type = models.ForeignKey(
        ContentType,
        models.CASCADE,
        related_name="taggeditem_set2",
    )
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')
    created_by_ct = models.ForeignKey(
        ContentType,
        models.SET_NULL,
        null=True,
        related_name='taggeditem_set3',
    )
    created_by_fkey = models.PositiveIntegerField(null=True)
    created_by = GenericForeignKey('created_by_ct', 'created_by_fkey',)
    favorite_ct = models.ForeignKey(
        ContentType,
        models.SET_NULL,
        null=True,
        related_name='taggeditem_set4',
    )
    favorite_fkey = models.CharField(max_length=64, null=True)
    favorite = GenericForeignKey('favorite_ct', 'favorite_fkey')

    def __str__(self):
        return self.tag

    class Meta:
        ordering = ['id']
示例#6
0
 def test_create_model_reordering_circular_fk(self):
     """
     CreateModel reordering behavior doesn't result in an infinite loop if
     there are FKs in both directions.
     """
     self.assertOptimizesTo(
         [
             migrations.CreateModel('Bar', [('url', models.TextField())]),
             migrations.CreateModel(
                 'Foo', [('name', models.CharField(max_length=255))]),
             migrations.AddField(
                 'Bar', 'foo_fk',
                 models.ForeignKey('migrations.Foo', models.CASCADE)),
             migrations.AddField(
                 'Foo', 'bar_fk',
                 models.ForeignKey('migrations.Bar', models.CASCADE)),
         ],
         [
             migrations.CreateModel(
                 'Foo', [('name', models.CharField(max_length=255))]),
             migrations.CreateModel('Bar', [
                 ('url', models.TextField()),
                 ('foo_fk',
                  models.ForeignKey('migrations.Foo', models.CASCADE)),
             ]),
             migrations.AddField(
                 'Foo', 'bar_fk',
                 models.ForeignKey('migrations.Foo', models.CASCADE)),
         ],
     )
示例#7
0
class CategoryRelationship(models.Model):
    first = models.ForeignKey(SimpleCategory,
                              models.CASCADE,
                              related_name='first_rel')
    second = models.ForeignKey(SimpleCategory,
                               models.CASCADE,
                               related_name='second_rel')
示例#8
0
        class Intermediate(models.Model):
            a2 = models.ForeignKey(A2, models.CASCADE, db_column='a1_id')
            c2 = models.ForeignKey(C2, models.CASCADE, db_column='c1_id')

            class Meta:
                db_table = 'd1'
                managed = False
示例#9
0
class Writer(models.Model):
    reporter = models.ForeignKey(Reporter, models.CASCADE)
    article = models.ForeignKey(Article, models.CASCADE)
    position = models.CharField(max_length=100)

    def __str__(self):
        return '%s (%s)' % (self.reporter, self.position)
示例#10
0
class BasePerson(AbstractPerson):
    # DATA fields
    data_base = models.CharField(max_length=10)
    fk_base = models.ForeignKey(Relation,
                                models.CASCADE,
                                related_name='fk_base_rel')

    # M2M fields
    m2m_base = models.ManyToManyField(Relation, related_name='m2m_base_rel')
    friends_base = models.ManyToManyField('self',
                                          related_name='friends_base',
                                          symmetrical=True)
    following_base = models.ManyToManyField('self',
                                            related_name='followers_base',
                                            symmetrical=False)

    # VIRTUAL fields
    data_not_concrete_base = models.ForeignObject(
        Relation,
        on_delete=models.CASCADE,
        from_fields=['base_non_concrete_id'],
        to_fields=['id'],
        related_name='fo_base_rel',
    )

    # GFK fields
    content_type_base = models.ForeignKey(ContentType,
                                          models.CASCADE,
                                          related_name='+')
    object_id_base = models.PositiveIntegerField()
    content_object_base = GenericForeignKey('content_type_base',
                                            'object_id_base')

    # GR fields
    generic_relation_base = GenericRelation(Relation)
示例#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!')
示例#12
0
class Person(models.Model):
    full_name = models.CharField(max_length=20)
    mother = models.ForeignKey('self', models.SET_NULL, null=True, related_name='mothers_child_set')
    father = models.ForeignKey('self', models.SET_NULL, null=True, related_name='fathers_child_set')

    def __str__(self):
        return self.full_name
示例#13
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)
示例#14
0
 class ModelWithDescriptorCalledCheck(models.Model):
     check = models.ForeignKey(ModelWithRelatedManagerCalledCheck,
                               models.CASCADE)
     article = models.ForeignKey(
         ModelWithRelatedManagerCalledCheck,
         models.CASCADE,
         related_name='check',
     )
示例#15
0
class Friendship(models.Model):
    first = models.ForeignKey(PersonSelfRefM2M,
                              models.CASCADE,
                              related_name="rel_from_set")
    second = models.ForeignKey(PersonSelfRefM2M,
                               models.CASCADE,
                               related_name="rel_to_set")
    date_friended = models.DateTimeField()
示例#16
0
class Bar(models.Model):
    name = models.CharField(max_length=50)
    normal = models.ForeignKey(Foo, models.CASCADE, related_name='normal_foo')
    fwd = models.ForeignKey("Whiz", models.CASCADE)
    back = models.ForeignKey("Foo", models.CASCADE)

    def __str__(self):
        return "Bar %s" % self.place.name
示例#17
0
class Improvement(Issue):
    """
    A model that has relation to a proxy model
    or to a proxy of proxy model
    """
    version = models.CharField(max_length=50)
    reporter = models.ForeignKey(ProxyTrackerUser, models.CASCADE)
    associated_bug = models.ForeignKey(ProxyProxyBug, models.CASCADE)
示例#18
0
            class Through(models.Model):
                referred = models.ForeignKey('Referred',
                                             on_delete=models.CASCADE)
                referent = models.ForeignKey('ConcreteReferent',
                                             on_delete=models.CASCADE)

                class Meta:
                    app_label = label
示例#19
0
class ArticleTranslation(models.Model):

    article = models.ForeignKey('indexes.Article', models.CASCADE)
    article_no_constraint = models.ForeignKey('indexes.Article',
                                              models.CASCADE,
                                              db_constraint=False,
                                              related_name='+')
    language = models.CharField(max_length=10, unique=True)
    content = models.TextField()
示例#20
0
class UserMembership(models.Model):
    id = models.AutoField(db_column='usermembership_id', primary_key=True)
    user = models.ForeignKey(User, models.CASCADE)
    group = models.ForeignKey('Group', models.CASCADE)
    price = models.IntegerField(default=100)

    def __str__(self):
        return "%s is a user and member of %s" % (self.user.username,
                                                  self.group.name)
示例#21
0
class Task(models.Model):
    title = models.CharField(max_length=10)
    owner = models.ForeignKey(BaseUser, models.CASCADE, related_name='owner')
    creator = models.ForeignKey(BaseUser,
                                models.CASCADE,
                                related_name='creator')

    def __str__(self):
        return self.title
示例#22
0
class Line(PostgreSQLModel):
    scene = models.ForeignKey('Scene', models.CASCADE)
    character = models.ForeignKey('Character', models.CASCADE)
    dialogue = models.TextField(blank=True, null=True)
    dialogue_search_vector = SearchVectorField(blank=True, null=True)
    dialogue_config = models.CharField(max_length=100, blank=True, null=True)

    def __str__(self):
        return self.dialogue or ''
示例#23
0
class Choice(models.Model):
    name = models.CharField(max_length=100)
    poll = models.ForeignKey(Poll, models.CASCADE, related_name="poll_choice")
    related_poll = models.ForeignKey(Poll,
                                     models.CASCADE,
                                     related_name="related_choice")

    def __str__(self):
        return self.name
示例#24
0
class Migration(migrations.Migration):

    dependencies = [
        ('sites', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='CustomArticle',
            fields=[
                ('id',
                 models.AutoField(verbose_name='ID',
                                  serialize=False,
                                  auto_created=True,
                                  primary_key=True)),
                ('title', models.CharField(max_length=50)),
                ('places_this_article_should_appear',
                 models.ForeignKey('sites.Site', models.CASCADE)),
            ],
            options={
                'abstract': False,
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name='ExclusiveArticle',
            fields=[
                ('id',
                 models.AutoField(verbose_name='ID',
                                  serialize=False,
                                  auto_created=True,
                                  primary_key=True)),
                ('title', models.CharField(max_length=50)),
                ('site', models.ForeignKey('sites.Site', models.CASCADE)),
            ],
            options={
                'abstract': False,
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name='SyndicatedArticle',
            fields=[
                ('id',
                 models.AutoField(verbose_name='ID',
                                  serialize=False,
                                  auto_created=True,
                                  primary_key=True)),
                ('title', models.CharField(max_length=50)),
                ('sites', models.ManyToManyField('sites.Site')),
            ],
            options={
                'abstract': False,
            },
            bases=(models.Model, ),
        ),
    ]
示例#25
0
class ModelWithNullFKToSite(models.Model):
    title = models.CharField(max_length=200)
    site = models.ForeignKey(Site, null=True, on_delete=models.CASCADE)
    post = models.ForeignKey(Post, null=True, on_delete=models.CASCADE)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return '/title/%s/' % quote(self.title)
示例#26
0
class Invitation(models.Model):
    event = models.ForeignKey(Event,
                              models.CASCADE,
                              related_name='invitations')
    # field order is deliberately inverted. the target field is "invitee".
    inviter = models.ForeignKey(Person,
                                models.CASCADE,
                                related_name='invitations_sent')
    invitee = models.ForeignKey(Person,
                                models.CASCADE,
                                related_name='invitations')
示例#27
0
class Researcher(models.Model):
    contacts = models.ManyToManyField(Contact,
                                      related_name="research_contacts")
    primary_contact = models.ForeignKey(Contact,
                                        models.SET_NULL,
                                        null=True,
                                        related_name='primary_contacts')
    secondary_contact = models.ForeignKey(Contact,
                                          models.SET_NULL,
                                          null=True,
                                          related_name='secondary_contacts')
示例#28
0
class Leaf(models.Model):
    name = models.CharField(max_length=10)
    child = models.ForeignKey(Child, models.CASCADE)
    second_child = models.ForeignKey(Child,
                                     models.SET_NULL,
                                     related_name="other",
                                     null=True)
    value = models.IntegerField(default=42)

    def __str__(self):
        return self.name
示例#29
0
class ObjectC(models.Model):
    name = models.CharField(max_length=50)
    objecta = models.ForeignKey(ObjectA, models.SET_NULL, null=True)
    objectb = models.ForeignKey(ObjectB, models.SET_NULL, null=True)
    childobjecta = models.ForeignKey(ChildObjectA,
                                     models.SET_NULL,
                                     null=True,
                                     related_name='ca_pk')

    def __str__(self):
        return self.name
示例#30
0
class Membership(models.Model):
    person = models.ForeignKey(Person, models.CASCADE)
    group = models.ForeignKey(Group, models.CASCADE)
    date_joined = models.DateTimeField(default=datetime.now)
    invite_reason = models.CharField(max_length=64, null=True)

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

    def __str__(self):
        return "%s is a member of %s" % (self.person.name, self.group.name)