﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
33729	[BUG] AutocompleteSelect widget broken after moving from django 2.2 to django 3.2	exo	nobody	"Hello :) After upgrading `Django` version to `3.2`, widget `AutocompleteSelect` that I use in `django` admin panel (to have a drop-down from which I can choose an object) **is broken**. 

The error I see is
{{{
    AttributeError at /admin/question/
    'QuerySet' object has no attribute 'name'

    Request Method:	GET
    Request URL:	http://localhost:8000/admin/question/
    Django Version:	3.2.13
    Exception Type:	AttributeError
    Exception Value:	
    'QuerySet' object has no attribute 'name'
    Exception Location:	/home/django-app/env/lib/python3.8/site-packages/django/contrib/admin/widgets.py, line 412, in build_attrs
    Python Executable:	/home/django-app/env/bin/python3
    Python Version:	3.8.10
    Python Path:	
    ['/home/django-app/testsite',
     '/usr/lib/python38.zip',
     '/usr/lib/python3.8',
     '/usr/lib/python3.8/lib-dynload',
     '/home/django-app/env/lib/python3.8/site-packages']
    Server time:	Fri, 20 May 2022 10:13:27 +0000
    Error during template rendering
    In template /home/django-app/testsite/polls/templates/admin/question_export.html, error at line 18

    'QuerySet' object has no attribute 'name'
    11	
    12	{% block content %}
    13	    <div id=""content-main"">
    14	      <p>Select question to export:</p>
    15	        <form method=""post"" enctype=""multipart/form-data"">
    16	            {% csrf_token %}
    17	            <table>
    18	                {{form.as_table}}
    19	            </table>
    20	            <div class=""submit-row"">
    21	                <input type=""submit"" value=""Export Question"" />
    22	            </div>
    23	        </form>
    24	    </div>
    25	    {{form.media}}
    26	{% endblock %}
    27	
}}}
`AutocompleteSelect` inherits from `AutocompleteMixin`

When I compare `AutocompleteMixin` for `django 3.2` and `django 2.2`
https://github.com/django/django/blob/3.2.13/django/contrib/admin/widgets.py#L410-L412
https://github.com/django/django/blob/2.2.7/django/contrib/admin/widgets.py#L411

I see that they added new attributes
{{{
    'data-app-label': self.field.model._meta.app_label,
    'data-model-name': self.field.model._meta.model_name,
    'data-field-name': self.field.name,
}}}
in `django 3.2` 
but there is no `name` on `self.field` and probably that's why I get this error.


The code looks like this

view.py
{{{
    from django.forms import ModelChoiceField
    from django import forms
    from django.contrib import admin
    from django.contrib.admin.widgets import AutocompleteSelect

    class QuestionChoiceField(ModelChoiceField):
        widget = AutocompleteSelect(Question.objects.all(), admin.site)
    
    
    class QuestionExportForm(forms.Form):
        question = QuestionChoiceField(queryset=Question.objects.all(), required=True)
    
        def clean_question(self):
            return self.cleaned_data[""question""]
    
    
    class QuestionExportView(FormView):
        template_name = ""admin/question_export.html""
        form_class = QuestionExportForm
        success_url = ""/admin/""
    
        def form_valid(self, form):
            question = form.cleaned_data.get(""question"")
            return generate_response(question)
}}}

models.py
{{{
    from django.db import models


    class Question(models.Model):
        question_text = models.CharField(max_length=200)
        pub_date = models.DateTimeField('date published')

}}}
templates/admin/question_export.html
{{{
    {% block content %}
        <div id=""content-main"">
          <p>Select question to export:</p>
            <form method=""post"" enctype=""multipart/form-data"">
                {% csrf_token %}
                <table>
                    {{form.as_table}}
                </table>
                <div class=""submit-row"">
                    <input type=""submit"" value=""Export Question"" />
                </div>
            </form>
        </div>
        {{form.media}}
    {% endblock %}
}}}

How can I approach this issue? Any help would be appreciated :)!"	Bug	new	contrib.admin	3.2	Normal		AutocompleteSelect		Unreviewed	0	0	0	0	0	0
