When there is a model with a ManyToManyField and you set this field in the
"ordering" setup in the admin setup, the object will we shown as many
times in the admin, as there are relations stored in the m2m field.
In this example, when the "type" field has 5 relations, the object will be
shown 5 times in the admin.
models.py:
class RelatedM2M(models.Model):
choice = models.CharField(max_length=255, unique=True)
description = models.TextField(blank=True)
class ModelName(models.Model):
id_uuid = models.UUIDField(...)
timestamp_created = models.DateTimeField(auto_now_add=True)
name = models.CharField(max_length=255)
type = models.ManyToManyField(RelatedM2M, related_name='type')
type_intermediate = models.ManyToManyField(AnotherRelatedM2M,
through='RelatedIntermediate')
geometry = models.GeometryField(...)
admin.py:
@admin.register(ModelName)
classModelNameAdminView(admin.GISModelAdmin):
inlines = (RelatedIntermediateInline,)
autocomplete_fields = ['....']
ordering = ['name', 'type', 'timestamp_created', ]
--
Ticket URL: <https://code.djangoproject.com/ticket/34090>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Old description:
> I might came across a possible optimization in the admin:
>
> When there is a model with a ManyToManyField and you set this field in
> the "ordering" setup in the admin setup, the object will we shown as many
> times in the admin, as there are relations stored in the m2m field.
>
> In this example, when the "type" field has 5 relations, the object will
> be shown 5 times in the admin.
>
> models.py:
>
> class RelatedM2M(models.Model):
> choice = models.CharField(max_length=255, unique=True)
> description = models.TextField(blank=True)
>
> class ModelName(models.Model):
> id_uuid = models.UUIDField(...)
> timestamp_created = models.DateTimeField(auto_now_add=True)
> name = models.CharField(max_length=255)
> type = models.ManyToManyField(RelatedM2M, related_name='type')
> type_intermediate = models.ManyToManyField(AnotherRelatedM2M,
> through='RelatedIntermediate')
> geometry = models.GeometryField(...)
>
> admin.py:
>
> @admin.register(ModelName)
> classModelNameAdminView(admin.GISModelAdmin):
> inlines = (RelatedIntermediateInline,)
> autocomplete_fields = ['....']
> ordering = ['name', 'type', 'timestamp_created', ]
New description:
models.py:
admin.py:
--
--
Ticket URL: <https://code.djangoproject.com/ticket/34090#comment:1>
Old description:
New description:
models.py:
admin.py:
autocomplete_fields = [...']
ordering = ['name', 'type', 'timestamp_created', ]
}}}
--
--
Ticket URL: <https://code.djangoproject.com/ticket/34090#comment:2>
Old description:
> admin.py:
>
New description:
models.py:
admin.py:
--
--
Ticket URL: <https://code.djangoproject.com/ticket/34090#comment:3>
* status: new => closed
* resolution: => invalid
Comment:
This is a documented behavior, see
[https://docs.djangoproject.com/en/stable/ref/models/querysets/#django.db.models.query.QuerySet.order_by
note] in the `QuerySet.order_by()` docs.
--
Ticket URL: <https://code.djangoproject.com/ticket/34090#comment:4>