Opened 15 years ago
Last modified 11 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.