Как объединить две таблицы (многорядные) в Django - PullRequest
0 голосов

Я хочу объединить 2 таблицы из 2 таблиц, такие как 'auth_user' и 'polls_account'. Как я могу присоединиться к ним?

models.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»?

1 Ответ

0 голосов
/ 06 ноября 2019

Если вы действительно не хотите, чтобы у каждого пользователя было несколько учетных записей, используйте 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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...