Django : Создание формы для выпадающего списка в зависимости от ID пользователя и модели

Я новичок в Django. Я хочу создать форму для выпадающего списка. Выпадающий список должен показывать различные варианты в зависимости от пользователя и модели. Я сделал кое-что непосредственно в view.py, что отображает варианты выбора без использования формы из Django, и она не сохраняет их. Так что это не идеально для того, что я хочу сделать после POST.

Вот мои Models.py

class TblAadJntGroup(models.Model):
    id = models.AutoField(db_column='ID', primary_key=True)  # Field name made lowercase.
    id_aadgroup = models.IntegerField(db_column='ID_AADGroup', blank=True, null=True)  # Field name made lowercase.
    id_aaduser = models.IntegerField(db_column='ID_AADUser', blank=True, null=True)  # Field name made lowercase.
    createdon = models.DateTimeField(db_column='CreatedOn', blank=True, null=True)  # Field name made lowercase.
    createdby = models.CharField(db_column='CreatedBy', max_length=255, blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'tbl_AAD_jnt_Group'

class TblAadGroups(models.Model):
    id = models.AutoField(db_column='ID', primary_key=True)  # Field name made lowercase.
    idcustomer = models.IntegerField(db_column='IDCustomer', blank=True, null=True)  # Field name made lowercase.
    displayname = models.CharField(db_column='DisplayName', max_length=255, blank=True, null=True)  # Field name made lowercase.
    timestampm = models.DateTimeField(db_column='TimeStampm', blank=True, null=True)  # Field name made lowercase.
    username = models.CharField(max_length=255, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'tbl_AAD_Groups'

Итак, чтобы получить данные, которые я хочу отобразить в выпадающем списке. Я начинаю получать ID пользователя. Затем из ID пользователя я получаю список ID клиентов, к которым пользователь имеет доступ в модели "TblAadJntGroup". Наконец, я определяю список клиентов, получая корреляцию этого списка ID в модели "TblAadGroups".

views.py :

@authenticated_user
def upload(request):
    
    # INITIALIZE THE CONTEXT TO FIX THE AUTHENTICATION
    context = initialize_context(request)

    ############################################################
    # GET THE LIST OF CLIENTS
    ############################################################

    # IDENTIFY THE ID OF THE USER
    ID_User = request.user.id

    # GET THE LIST OF THE ID OF THE CLIENTS
    ID_Client_List = TblAadJntGroup.objects.filter(id_aaduser=ID_User).values_list('id_aadgroup', flat=True)
    ID_Client_List = list(ID_Client_List)

    client_list = TblAadGroups.objects.all().filter(id__in=ID_Client_List)
    
    if request.method == 'POST':

        id_customer_request = request.POST.get("client")
        print(id_customer_request)

    ############################################################
    # LOAD THE CONTEXT
    ############################################################
    context['clients'] = client_list

    return render(request, 'base/upload.html', context)

upload.html

{% extends 'home.html' %}

{% load static %}

{% block content %}
<link rel="stylesheet" href="{% static 'test12.css' %}">
<div class="upload-app">
    <div class="selectclients">
        <h2>Select The Company</h2>
        <form method="post" id="SelectCompany">
            {% csrf_token %} 
            <select class="client" name="client">
                <option selected="selected" disabled>Objects on page:</option>
                    
                    {% for client in clients %}

                        <option value="{{ client.idcustomer }}">{{ client.groupname }}</option>

                    {% endfor %}
            </select>
            <input type="submit" value="Select">
        </form>

    </div>
</div>

{% endblock %}

Как я могу переписать это непосредственно в форме, если это возможно.

Спасибо за помощь!

Вернуться на верх