django连表查询

user_profile的models

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
class (AbstractBaseUser):
username = models.CharField('username', max_length=20,
unique=True, db_index=True)
email = models.EmailField('email address', unique=True)
joined = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
USERNAME_FIELD = 'username'
def __unicode__(self):
return self.username

Password的models

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from __future__ import unicode_literals
from django.db import models
from django.db import models
import datetime
from user_profile.models import CommonUser
# Create your models here.
class PasswordItems(models.Model):
host_name = models.CharField(max_length=100)
port = models.CharField(default='', max_length=10)
password = models.CharField(max_length=100)
update_time = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.host_name
class PasswordGroup(models.Model):
group_name = models.CharField(max_length=10, unique=True)
passwordItems = models.ManyToManyField(PasswordItems)
def __unicode__(self):
return self.group_name
class Manager(models.Model):
"""
管理员权限
"""
user = models.ForeignKey(CommonUser)
group = models.ManyToManyField(PasswordGroup)
def __unicode__(self):
return self.user.username

查询所有Group属于Default的用户

1
2
Manager.objects.filter(group__group_name__contains='Default')
<QuerySet [<Manager: lilei>, <Manager: lileikf2016>]>