В моей базе данных sqlite3 есть следующие таблицы:
PRAGMA table_info(auth_user);
0|id|integer|1||1
1|password|varchar(128)|1||0
2|last_login|datetime|0||0
3|is_superuser|bool|1||0
4|username|varchar(150)|1||0
5|first_name|varchar(30)|1||0
6|email|varchar(254)|1||0
7|is_staff|bool|1||0
8|is_active|bool|1||0
9|date_joined|datetime|1||0
10|last_name|varchar(150)|1||0
PRAGMA table_info(accounts_member);
0|id|integer|1||1
1|team_id|integer|1||0
2|user_id|integer|1||0
3|department_id|integer|1||0
и, наконец:
PRAGMA table_info(accounts_department);
0|id|integer|1||1
1|name|varchar(20)|1||0
2|description|varchar(255)|1||0
Три приведенные выше таблицы связаны друг с другом следующим образом:
auth_user
- это главная таблица, которая связывает таблицы.accounts_member
ссылается на auth_user с внешним ключом user_id, а также accounts_department
с внешним ключом Department_id.
select * from auth_user
inner join accounts_member on accounts_member.user_id = auth_user.id
inner join account_department on account_department.department_id = accounts_member.id
У меня есть разные учебные пособия, но большинство из них, которые я получаю, требует использования условия функции where.
Ниже приведены мои модели: Для account_department
class Department(models.Model):
class Meta:
get_latest_by = "name"
name = models.CharField(max_length=20)
description = models.CharField(max_length=255)
def __str__(self):
return self.name
def get_absolute_url(self):
return
Для account_member:
class Member(models.Model):
team = models.ForeignKey(Profile, models.CASCADE)
user = models.ForeignKey(User, models.CASCADE, related_name="memberships")
department = models.OneToOneField(Department, models.CASCADE, blank=True, null=True)
А таблица auth_user использует встроенные модели django.
Я попробовал следующее в моем views.py:
profile = request.profile
department = Department.objects.all()
members = Member.objects.filter(is_active=1).select_related("user","department")
data = {
"page": "profile",
"profile": profile,
'departments': department,
"members_list": members,
"show_api_keys": False,
"api_status": "default",
"team_status": "default"
}
Но он возвращает только значения таблицы accounts_member, как мне получить все значения?