2012-06-08 00:08:47 +08:00
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
2006-10-14 10:48:05 +08:00
|
|
|
from django.db import models
|
2012-08-12 18:32:08 +08:00
|
|
|
from django.utils.encoding import python_2_unicode_compatible
|
2006-10-14 10:48:05 +08:00
|
|
|
|
2011-10-14 05:34:56 +08:00
|
|
|
|
2012-08-12 18:32:08 +08:00
|
|
|
@python_2_unicode_compatible
|
2006-10-14 10:48:05 +08:00
|
|
|
class Poll(models.Model):
|
2007-08-05 13:14:46 +08:00
|
|
|
question = models.CharField(max_length=200)
|
2006-10-14 10:48:05 +08:00
|
|
|
|
2012-08-12 18:32:08 +08:00
|
|
|
def __str__(self):
|
2012-06-08 00:08:47 +08:00
|
|
|
return "Q: %s " % self.question
|
2006-10-14 10:48:05 +08:00
|
|
|
|
2013-11-03 05:34:05 +08:00
|
|
|
|
2012-08-12 18:32:08 +08:00
|
|
|
@python_2_unicode_compatible
|
2006-10-14 10:48:05 +08:00
|
|
|
class Choice(models.Model):
|
|
|
|
poll = models.ForeignKey(Poll)
|
2007-08-05 13:14:46 +08:00
|
|
|
choice = models.CharField(max_length=200)
|
2006-10-14 10:48:05 +08:00
|
|
|
|
2012-08-12 18:32:08 +08:00
|
|
|
def __str__(self):
|
2012-06-08 00:08:47 +08:00
|
|
|
return "Choice: %s in poll %s" % (self.choice, self.poll)
|
2006-10-14 10:48:05 +08:00
|
|
|
|
2009-03-06 10:02:09 +08:00
|
|
|
# A set of models with an inner one pointing to two outer ones.
|
2013-11-03 05:34:05 +08:00
|
|
|
|
|
|
|
|
2009-03-06 10:02:09 +08:00
|
|
|
class OuterA(models.Model):
|
|
|
|
pass
|
|
|
|
|
2013-11-03 05:34:05 +08:00
|
|
|
|
2009-03-06 10:02:09 +08:00
|
|
|
class OuterB(models.Model):
|
|
|
|
data = models.CharField(max_length=10)
|
|
|
|
|
2013-11-03 05:34:05 +08:00
|
|
|
|
2009-03-06 10:02:09 +08:00
|
|
|
class Inner(models.Model):
|
|
|
|
first = models.ForeignKey(OuterA)
|
2013-02-10 23:15:49 +08:00
|
|
|
# second would clash with the __second lookup.
|
|
|
|
third = models.ForeignKey(OuterB, null=True)
|