mirror of
https://github.com/django/django.git
synced 2024-11-18 23:44:22 +00:00
99321e30ce
Deferred models now automatically update only the fields which are loaded from the db (with .only() or .defer()). In addition, any field set manually after the load is updated on save.
42 lines
1013 B
Python
42 lines
1013 B
Python
|
|
from django.db import models
|
|
from django.utils.encoding import python_2_unicode_compatible
|
|
|
|
GENDER_CHOICES = (
|
|
('M', 'Male'),
|
|
('F', 'Female'),
|
|
)
|
|
|
|
class Account(models.Model):
|
|
num = models.IntegerField()
|
|
|
|
|
|
@python_2_unicode_compatible
|
|
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
|
|
|
|
|
|
class Employee(Person):
|
|
employee_num = models.IntegerField(default=0)
|
|
profile = models.ForeignKey('Profile', related_name='profiles', null=True)
|
|
accounts = models.ManyToManyField('Account', related_name='employees', blank=True, null=True)
|
|
|
|
|
|
@python_2_unicode_compatible
|
|
class Profile(models.Model):
|
|
name = models.CharField(max_length=200)
|
|
salary = models.FloatField(default=1000.0)
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class ProxyEmployee(Employee):
|
|
class Meta:
|
|
proxy = True
|