Opened 15 years ago
Last modified 10 years ago
#13794 closed
Django does not respect to_field's model on an inline model admin — at Initial Version
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Forms | Version: | dev |
Severity: | Normal | Keywords: | admin inline to_field formset |
Cc: | ghayoun@… | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
The problem occurs in the function unicode of ModelB
When editing a ModelA instance in admin site, all ModelB instances have a modela_id set to the pk of the ModelA instance, instead of the value of the to_field's field. And, when accessing to the field modela of a ModelB instance, a DoesNotExist exception is raised.
This problem does not occus in the shell :
In [3]: ModelA.objects.all()[0].modelb_set.all()[0].modela_id Out[3]: u'TRUC' In [6]: ModelB.objects.all()[0].modela_id Out[6]: u'TRUC'
See below to reproduce
models.py class ModelA(models.Model): code = models.CharField(max_length=20, unique=True) class ModelB(models.Model): modela = models.ForeignKey(ModelA, to_field="code") position = models.IntegerField() def __unicode__(self): return u"%s" % self.modela admin.py class ModelBInlineAdmin(admin.TabularInline): model = ModelB class ModelAAdmin(admin.ModelAdmin): model = ModelA inlines = [ModelBInlineAdmin] admin.site.register(ModelA, ModelAAdmin)
Note:
See TracTickets
for help on using tickets.