Opened 5 months ago
Last modified 5 months ago
#36337 assigned Bug
Broken autocomplete inside Inline after clicking "Add another ..."
Reported by: | Michał Pokusa | Owned by: | Ahmed Nassar |
---|---|---|---|
Component: | contrib.admin | Version: | dev |
Severity: | Normal | Keywords: | autocomplete inline admin |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | yes |
Description
This error occurs on versions from 3.2 (or even before, untested) up to latest (5.2 at this time). It seems like it is only JS/CSS related.
Happens with both TabularInline
and StackedInline
.
Possibly related to #36336.
Tested on Google Chrome, Firefox, Edge and on mobile device.
Steps to reproduce (code below):
- Go to change form view (editing existing object, adding new one, doesn't matter)
- Click "X" on any inline except last one
- Click "Add another ..." once again
Code:
models.py
from django.db import models class Restaurant(models.Model): name = models.CharField(max_length=100) address = models.CharField(max_length=255) def __str__(self): return self.name class Order(models.Model): restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE) order_number = models.CharField(max_length=20) products = models.ManyToManyField("Product", related_name="orders") def __str__(self): return f"Order {self.pk} from {self.restaurant.name}" class Product(models.Model): name = models.CharField(max_length=100) price = models.DecimalField(max_digits=10, decimal_places=2) def __str__(self): return f"{self.name} - ${self.price}"
admin.py
from django.contrib import admin from .models import Restaurant, Order, Product class OrderInline(admin.StackedInline): model = Order extra = 3 fields = ["order_number", "products"] autocomplete_fields = ["products"] @admin.register(Restaurant) class RestaurantAdmin(admin.ModelAdmin): list_display = ("name", "address") search_fields = ("name", "address") inlines = [OrderInline] @admin.register(Order) class OrderAdmin(admin.ModelAdmin): list_display = ("restaurant", "order_number") @admin.register(Product) class ProductAdmin(admin.ModelAdmin): list_display = ("name", "price") search_fields = ("name",)
Change History (2)
comment:1 by , 5 months ago
Triage Stage: | Unreviewed → Accepted |
---|---|
Version: | 5.2 → dev |
comment:2 by , 5 months ago
Owner: | set to |
---|---|
Status: | new → assigned |
Note:
See TracTickets
for help on using tickets.
Thank you Michał Pokusa, I was able to reproduce this issue with the provided steps.