~ubuntu-branches/ubuntu/saucy/python-django/saucy-updates

« back to all changes in this revision

Viewing changes to tests/regressiontests/m2m_through_regress/models.py

  • Committer: Package Import Robot
  • Author(s): Luke Faraone, Jakub Wilk, Luke Faraone
  • Date: 2013-05-09 15:10:47 UTC
  • mfrom: (1.1.21) (4.4.27 sid)
  • Revision ID: package-import@ubuntu.com-20130509151047-aqv8d71oj9wvcv8c
Tags: 1.5.1-2
[ Jakub Wilk ]
* Use canonical URIs for Vcs-* fields.

[ Luke Faraone ]
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from __future__ import unicode_literals
 
2
 
1
3
from django.contrib.auth.models import User
2
4
from django.db import models
 
5
from django.utils.encoding import python_2_unicode_compatible
3
6
 
4
7
 
5
8
# Forward declared intermediate model
 
9
@python_2_unicode_compatible
6
10
class Membership(models.Model):
7
11
    person = models.ForeignKey('Person')
8
12
    group = models.ForeignKey('Group')
9
13
    price = models.IntegerField(default=100)
10
14
 
11
 
    def __unicode__(self):
 
15
    def __str__(self):
12
16
        return "%s is a member of %s" % (self.person.name, self.group.name)
13
17
 
14
18
# using custom id column to test ticket #11107
 
19
@python_2_unicode_compatible
15
20
class UserMembership(models.Model):
16
21
    id = models.AutoField(db_column='usermembership_id', primary_key=True)
17
22
    user = models.ForeignKey(User)
18
23
    group = models.ForeignKey('Group')
19
24
    price = models.IntegerField(default=100)
20
25
 
21
 
    def __unicode__(self):
 
26
    def __str__(self):
22
27
        return "%s is a user and member of %s" % (self.user.username, self.group.name)
23
28
 
 
29
@python_2_unicode_compatible
24
30
class Person(models.Model):
25
31
    name = models.CharField(max_length=128)
26
32
 
27
 
    def __unicode__(self):
 
33
    def __str__(self):
28
34
        return self.name
29
35
 
 
36
@python_2_unicode_compatible
30
37
class Group(models.Model):
31
38
    name = models.CharField(max_length=128)
32
39
    # Membership object defined as a class
33
40
    members = models.ManyToManyField(Person, through=Membership)
34
41
    user_members = models.ManyToManyField(User, through='UserMembership')
35
42
 
36
 
    def __unicode__(self):
 
43
    def __str__(self):
37
44
        return self.name
38
45
 
39
46
# A set of models that use an non-abstract inherited model as the 'through' model.
53
60
 
54
61
 
55
62
# Using to_field on the through model
 
63
@python_2_unicode_compatible
56
64
class Car(models.Model):
57
65
    make = models.CharField(max_length=20, unique=True, null=True)
58
66
    drivers = models.ManyToManyField('Driver', through='CarDriver')
59
67
 
60
 
    def __unicode__(self, ):
 
68
    def __str__(self):
61
69
        return "%s" % self.make
62
70
 
 
71
@python_2_unicode_compatible
63
72
class Driver(models.Model):
64
73
    name = models.CharField(max_length=20, unique=True, null=True)
65
74
 
66
 
    def __unicode__(self):
 
75
    def __str__(self):
67
76
        return "%s" % self.name
68
77
 
69
78
    class Meta:
70
79
        ordering = ('name',)
71
80
 
 
81
@python_2_unicode_compatible
72
82
class CarDriver(models.Model):
73
83
    car = models.ForeignKey('Car', to_field='make')
74
84
    driver = models.ForeignKey('Driver', to_field='name')
75
85
 
76
 
    def __unicode__(self, ):
77
 
        return u"pk=%s car=%s driver=%s" % (str(self.pk), self.car, self.driver)
 
86
    def __str__(self):
 
87
        return "pk=%s car=%s driver=%s" % (str(self.pk), self.car, self.driver)