Django : Отображение определенных атрибутов моей формы ModelMultipleChoiceField и получение ID из нее

Я новичок в Django, поэтому мне трудно правильно написать форму и знать, как ее использовать. У меня есть форма, которая отображает выпадающий список в зависимости от пользователя. Поэтому у меня есть запросы. Ниже приведена моя форма и мои модели :

models.py

class UploadFiles(models.Model):
    Id = models.IntegerField(db_column='ID')  # Field name made lowercase.
    Filename = models.CharField(db_column='FileName', max_length=255, blank=True, null=True)  # Field name made lowercase.
    PreviousFilename = models.CharField(db_column='FileNameBeforeIndex', max_length=255, blank=True, null=True)  # Field name made lowercase.
    User = models.CharField(db_column='User', max_length=255, blank=True, null=True)  # Field name made lowercase.
    SizeFile = models.IntegerField(db_column='Sizefile') 
    Uploaded_at = models.DateTimeField(db_column='Timestamp', auto_now_add=True)  # Field name made lowercase.
    ID_Customer = models.IntegerField(db_column='ID_Customer', blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'tbl_PdfPath'

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_GroupMember'

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.
    groupname = models.CharField(db_column='GroupName', max_length=255, blank=True, null=True)  # Field name made lowercase.
    samaccountname = models.CharField(db_column='SamAccountName', max_length=255, blank=True, null=True)  # Field name made lowercase.
    groupcategory = models.CharField(db_column='GroupCategory', max_length=255, blank=True, null=True)  # Field name made lowercase.
    groupscope = models.CharField(db_column='GroupScope', max_length=255, 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.
    groupdescription = models.CharField(db_column='GroupDescription', 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'

forms.py

class SelectClient(forms.ModelForm):

    class Meta:
        model = UploadFiles
        fields = ['ID_Customer']
    
    def __init__(self, *args, **kwargs) :
        self.user = kwargs.pop('user')
        super(SelectClient, self).__init__(*args, **kwargs)

        id_client_list = TblAadJntGroup.objects.filter(id_aaduser=self.user.id).values_list('id_aadgroup', flat=True)
        id_client_list = list(id_client_list)

        # self.fields['ID_Customer'].queryset = TblAadGroups.objects.all().filter(id__in=id_client_list).values_list('idcustomer', flat=True)
        self.fields['ID_Customer'].queryset = TblAadGroups.objects.all().filter(id__in=id_client_list)

    ID_Customer = forms.ModelChoiceField(queryset=None)
    

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 %} 
            {{ form_client.as_p }}
            <input type="submit" value="Select">
        </form>
    </div> 
</div> 
{% endblock %}

views.py

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

    form_client = SelectClient(request.POST, user=request.user)
    if form_client.is_valid():
        id_customer_request = request.POST.get("ID_Customer")
        print(id_customer_request)

    context['form_client'] = form_client

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

Вот что отображается :

enter image description here

Что нужно изменить в форме, модели или в html? Название компании, которое я хочу отобразить, является столбцом "groupname" модели "TblAadGroups". А ID, который я хочу получить, это столбец "idcustomer" модели "TblAadGroups"

Спасибо

Для отображения колонки "groupname" вы можете определить __str__ методы в вашей модели. Этот метод будет использоваться в шаблонах, когда вы вызываете объект этой модели:

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.
    groupname = models.CharField(db_column='GroupName', max_length=255, blank=True, null=True)  # Field name made lowercase.
    samaccountname = models.CharField(db_column='SamAccountName', max_length=255, blank=True, null=True)  # Field name made lowercase.
    groupcategory = models.CharField(db_column='GroupCategory', max_length=255, blank=True, null=True)  # Field name made lowercase.
    groupscope = models.CharField(db_column='GroupScope', max_length=255, 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.
    groupdescription = models.CharField(db_column='GroupDescription', 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)

    def __str__(self):
        if self.groupname: #Because groupname can be null.
            return self.groupname
        else:
            return ''

    class Meta:
        managed = False
        db_table = 'tbl_AAD_Groups'
Вернуться на верх