我想从两个表中连接两个表,例如"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 %}