models.py 992 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from django.db import models
  2. from django.utils.encoding import python_2_unicode_compatible
  3. @python_2_unicode_compatible
  4. class Part(models.Model):
  5. name = models.CharField(max_length=20)
  6. class Meta:
  7. ordering = ('name',)
  8. def __str__(self):
  9. return self.name
  10. @python_2_unicode_compatible
  11. class Car(models.Model):
  12. name = models.CharField(max_length=20)
  13. default_parts = models.ManyToManyField(Part)
  14. optional_parts = models.ManyToManyField(Part, related_name='cars_optional')
  15. class Meta:
  16. ordering = ('name',)
  17. def __str__(self):
  18. return self.name
  19. class SportsCar(Car):
  20. price = models.IntegerField()
  21. @python_2_unicode_compatible
  22. class Person(models.Model):
  23. name = models.CharField(max_length=20)
  24. fans = models.ManyToManyField('self', related_name='idols', symmetrical=False)
  25. friends = models.ManyToManyField('self')
  26. class Meta:
  27. ordering = ('name',)
  28. def __str__(self):
  29. return self.name