﻿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
31449	Autocomplete doesn't work when ForeignKey to_field is not pk.	007	nobody	"if a  ForeignKey field with to_field (not pk), and the field set to autocomplete_fields.
form will get pk not to_filed_value when edit model in change_view.
example:
ObjectC field a in AutocompleteSelect will got pk not code. save fail

models:
{{{

class ObjectA(models.Model):
    code = models.CharField(verbose_name='code', max_length=32, unique=True)
    name = models.CharField(verbose_name='name', max_length=32)

    def __str__(self):
        return self.name


class ObjectB(models.Model):
    name = models.CharField(verbose_name='name', max_length=32)
    a = models.ForeignKey(ObjectA, on_delete=models.CASCADE, related_name=""+"")
    ma = models.ManyToManyField(ObjectA)

    def __str__(self):
        return self.name


class ObjectC(models.Model):
    name = models.CharField(verbose_name='name', max_length=32)
    a = models.ForeignKey(ObjectA, on_delete=models.CASCADE, to_field='code', related_name=""+"")
    ma = models.ManyToManyField(ObjectA, through='ObjectCtoA')

    def __str__(self):
        return self.name


class ObjectCtoA(models.Model):
    c = models.ForeignKey(ObjectC, on_delete=models.CASCADE, related_name=""+"")
    a = models.ForeignKey(ObjectA, on_delete=models.CASCADE, to_field='code', related_name=""+"")

    class Meta:
        auto_created = True

}}}

admin:
{{{

class AdminA(admin.ModelAdmin):
    list_display = ('id', 'code', 'name')
    search_fields = ('code', 'name')


class AdminB(admin.ModelAdmin):
    list_display = ('id', 'name', 'a')
    autocomplete_fields = ('a', 'ma')


class AdminC(admin.ModelAdmin):
    list_display = ('id', 'name', 'a')
    autocomplete_fields = ('a', 'ma')


site.register(models.ObjectA, AdminA)
site.register(models.ObjectB, AdminB)
site.register(models.ObjectC, AdminC)

}}}
"	Bug	closed	contrib.admin	dev	Normal	duplicate			Unreviewed	0	0	0	0	0	0
