PageRenderTime 14ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/regressiontests/generic_relations_regress/models.py

https://code.google.com/p/mango-py/
Python | 79 lines | 60 code | 18 blank | 1 comment | 0 complexity | c85ca7c52d4b97f711c43c810cd6cd87 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. from django.db import models
  2. from django.contrib.contenttypes import generic
  3. from django.contrib.contenttypes.models import ContentType
  4. __all__ = ('Link', 'Place', 'Restaurant', 'Person', 'Address',
  5. 'CharLink', 'TextLink', 'OddRelation1', 'OddRelation2',
  6. 'Contact', 'Organization', 'Note')
  7. class Link(models.Model):
  8. content_type = models.ForeignKey(ContentType)
  9. object_id = models.PositiveIntegerField()
  10. content_object = generic.GenericForeignKey()
  11. def __unicode__(self):
  12. return "Link to %s id=%s" % (self.content_type, self.object_id)
  13. class Place(models.Model):
  14. name = models.CharField(max_length=100)
  15. links = generic.GenericRelation(Link)
  16. def __unicode__(self):
  17. return "Place: %s" % self.name
  18. class Restaurant(Place):
  19. def __unicode__(self):
  20. return "Restaurant: %s" % self.name
  21. class Address(models.Model):
  22. street = models.CharField(max_length=80)
  23. city = models.CharField(max_length=50)
  24. state = models.CharField(max_length=2)
  25. zipcode = models.CharField(max_length=5)
  26. content_type = models.ForeignKey(ContentType)
  27. object_id = models.PositiveIntegerField()
  28. content_object = generic.GenericForeignKey()
  29. def __unicode__(self):
  30. return '%s %s, %s %s' % (self.street, self.city, self.state, self.zipcode)
  31. class Person(models.Model):
  32. account = models.IntegerField(primary_key=True)
  33. name = models.CharField(max_length=128)
  34. addresses = generic.GenericRelation(Address)
  35. def __unicode__(self):
  36. return self.name
  37. class CharLink(models.Model):
  38. content_type = models.ForeignKey(ContentType)
  39. object_id = models.CharField(max_length=100)
  40. content_object = generic.GenericForeignKey()
  41. class TextLink(models.Model):
  42. content_type = models.ForeignKey(ContentType)
  43. object_id = models.TextField()
  44. content_object = generic.GenericForeignKey()
  45. class OddRelation1(models.Model):
  46. name = models.CharField(max_length=100)
  47. clinks = generic.GenericRelation(CharLink)
  48. class OddRelation2(models.Model):
  49. name = models.CharField(max_length=100)
  50. tlinks = generic.GenericRelation(TextLink)
  51. # models for test_q_object_or:
  52. class Note(models.Model):
  53. content_type = models.ForeignKey(ContentType)
  54. object_id = models.PositiveIntegerField()
  55. content_object = generic.GenericForeignKey()
  56. note = models.TextField()
  57. class Contact(models.Model):
  58. notes = generic.GenericRelation(Note)
  59. class Organization(models.Model):
  60. name = models.CharField(max_length=255)
  61. contacts = models.ManyToManyField(Contact, related_name='organizations')