如何在Django中连接两个表(多行)



我想从两个表中连接两个表,例如"auth_user"one_answers"polls_account"。我怎样才能加入他们?

型号.py

class Account(models.Model):
usid = models.ForeignKey(User, on_delete=models.PROTECT)
ROLE = (
('01', 'Owner-Manager'),
('02', 'Staff'),
)
role = models.CharField(max_length=2, choices=ROLE, blank=True, null=True)

views.py

def useraccount(request):
user_list = User.objects.all()
userlist = {
'user_list': user_list,
return render(request, 'polls/useraccount.html', userlist)
}

我需要根据显示表格

| username | firstname | lastname |   role   |
----------------------------------------------
|    a     |   Mike    |   Hanze  |   Staff  |

并且,我应该将"usid"更改为"OneToOneField"吗?

除非您真的希望每个用户都有多个帐户,否则请使用OneToOneField而不是ForeignKey。像这样:

usid = models.OneToOneField(User, on_delete=models.PROTECT)

然后在您的模板中:

{% for user in userlist %}
<tr>
<td>{{ user.username }}</td>
<td>{{ user.firstname }}</td>
<td>{{ user.lastname }}</td>
<td>{{ user.account.role }}</td>
</tr>
{% endfor %}