mirror of
https://github.com/django/django.git
synced 2025-03-13 10:50:55 +00:00
Thanks to Collin Anderson for the suggestion and Tim Graham for reviewing the patch. Backport of 22c6497f99 from master
32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
from django.db import models
|
|
|
|
|
|
class Author(models.Model):
|
|
first_name = models.CharField(max_length=255)
|
|
last_name = models.CharField(max_length=255)
|
|
dob = models.DateField()
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(Author, self).__init__(*args, **kwargs)
|
|
# Protect against annotations being passed to __init__ --
|
|
# this'll make the test suite get angry if annotations aren't
|
|
# treated differently than fields.
|
|
for k in kwargs:
|
|
assert k in [f.attname for f in self._meta.fields], \
|
|
"Author.__init__ got an unexpected parameter: %s" % k
|
|
|
|
class Book(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
author = models.ForeignKey(Author)
|
|
paperback = models.BooleanField(default=False)
|
|
opening_line = models.TextField()
|
|
|
|
class Coffee(models.Model):
|
|
brand = models.CharField(max_length=255, db_column="name")
|
|
|
|
class Reviewer(models.Model):
|
|
reviewed = models.ManyToManyField(Book)
|
|
|
|
class FriendlyAuthor(Author):
|
|
pass
|