class MultiModel(models.Model): link1 = models.OneToOneField(Place, models.CASCADE) link2 = models.OneToOneField(ManualPrimaryKey, models.CASCADE) name = models.CharField(max_length=50) def __str__(self): return "Multimodel %s" % self.name
class UserProfile(models.Model): user = models.OneToOneField(User, models.CASCADE) city = models.CharField(max_length=100) state = models.CharField(max_length=2) def __str__(self): return "%s, %s" % (self.city, self.state)
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,)
class Restaurant(models.Model): place = models.OneToOneField(Place, models.CASCADE, primary_key=True) serves_hot_dogs = models.BooleanField(default=False) serves_pizza = models.BooleanField(default=False) def __str__(self): return "%s the restaurant" % self.place.name
class LinkedList(models.Model): name = models.CharField(max_length=50) previous_item = models.OneToOneField( 'self', models.CASCADE, related_name='next_item', blank=True, null=True, )
class B(A): a = models.OneToOneField('A', parent_link=True, on_delete=models.CASCADE) class Meta: abstract = True
class O2OCaseTestModel(models.Model): o2o = models.OneToOneField(CaseTestModel, models.CASCADE, related_name='o2o_rel') integer = models.IntegerField() def __str__(self): return "%i, %s" % (self.id, self.o2o)
class Bio(models.Model): author = models.OneToOneField( Author, models.CASCADE, primary_key=True, to_field='name', ) books = models.ManyToManyField(Book, blank=True)
class House(models.Model): name = models.CharField(max_length=50) address = models.CharField(max_length=255) owner = models.ForeignKey('Person', models.SET_NULL, null=True) main_room = models.OneToOneField('Room', models.SET_NULL, related_name='main_room_of', null=True) class Meta: ordering = ['id']
class BookWithO2O(models.Model): author = models.OneToOneField(Author, models.CASCADE) title = models.CharField(max_length=100, db_index=True) pub_date = models.DateTimeField() class Meta: apps = new_apps db_table = "schema_book"
class ParkingLot(Place): # An explicit link to the parent (we can control the attribute name). parent = models.OneToOneField(Place, models.CASCADE, primary_key=True, parent_link=True) main_site = models.ForeignKey(Place, models.CASCADE, related_name='lot') def __str__(self): return "%s the parking lot" % self.name
class OneToOneRestrictedModel(models.Model): name = models.CharField(max_length=50) is_public = models.BooleanField(default=False) related = models.OneToOneField(RelatedModel, models.CASCADE) objects = RestrictedManager() plain_manager = models.Manager() def __str__(self): return self.name
class ParkingLot(Place): # An explicit link to the parent (we can control the attribute name). parent = models.OneToOneField(Place, models.CASCADE, primary_key=True, parent_link=True) capacity = models.IntegerField() def __str__(self): return "%s the parking lot" % self.name
class HiddenPointer(models.Model): target = models.OneToOneField(Target, models.CASCADE, related_name='hidden+')
class Director(models.Model): is_temp = models.BooleanField(default=False) school = models.OneToOneField(School, models.CASCADE) objects = DirectorManager()
class Child2(Parent1): parent2 = models.OneToOneField(Parent2, models.CASCADE) value = models.IntegerField() def __str__(self): return self.name1
class Product(models.Model): name = models.CharField(max_length=100) image = models.OneToOneField(Image, models.SET_NULL, null=True)
class StatDetails(models.Model): base_stats = models.OneToOneField(UserStat, models.CASCADE) comments = models.IntegerField() def __str__(self): return 'StatDetails, comments = %s' % (self.comments,)
class Bar(models.Model): place = models.OneToOneField(Place, models.CASCADE) serves_cocktails = models.BooleanField(default=True) def __str__(self): return "%s the bar" % self.place.name
class UndergroundBar(models.Model): place = models.OneToOneField(Place, models.SET_NULL, null=True) serves_cocktails = models.BooleanField(default=True)
class AuthorProfile(models.Model): author = models.OneToOneField(Author, models.CASCADE, primary_key=True) date_of_birth = models.DateField() def __str__(self): return "Profile of %s" % self.author
class FeaturedArticle(models.Model): article = models.OneToOneField(Article, models.CASCADE, related_name='featured')
class RelatedModel(models.Model): link = models.OneToOneField(ManualPrimaryKey, models.CASCADE) name = models.CharField(max_length=50)
class ParkingLot4(models.Model): # Test parent_link connector can be discovered in abstract classes. parent = models.OneToOneField(Place, models.CASCADE, parent_link=True) class Meta: abstract = True
class Pointer2(models.Model): other = models.OneToOneField(Target, models.CASCADE, related_name='second_pointer')
class Pointer(models.Model): other = models.OneToOneField(Target, models.CASCADE, primary_key=True)
class ParkingLot3(Place): # The parent_link connector need not be the pk on the model. primary_key = models.AutoField(primary_key=True) parent = models.OneToOneField(Place, models.CASCADE, parent_link=True)
class ToFieldPointer(models.Model): target = models.OneToOneField(Target, models.CASCADE, to_field='name', primary_key=True)
class UserProfile(models.Model): user = models.OneToOneField(User, models.SET_NULL, null=True) flavor = models.CharField(max_length=100) class Meta: ordering = ('flavor',)
class PersonProfile(models.Model): person = models.OneToOneField(Person, models.CASCADE, related_name='profile')