﻿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
29087	Impossible to delete pending new inline in admin when invalid (delete button missing)	Owen Heisler		"When adding a new inline record in the Django Admin, it is impossible to delete the record if it has had a validation error. This is the most evident to the user if he/she accidentally attempts to use the wrong inline for some data. For example, if a ContactAdmin has both PhoneInline and EmailInline, the user may accidentally enter a phone number in an EmailInline record. When attempting to submit the changes, a validation error is raised. Seeing the problem, the user would now like to just delete the new record that is pending. However, at this point there is no '''Delete''' button. Thus the user is forced to either (a) reload the change page, discarding any other unrelated pending changes on the page; or (b) change the data to make it valid, click '''Save and continue editing''', and then delete the offending record before finally saving the changes again.

==== Test code

Consider the following code, where the Django Admin provides access to a '''Groups''' page with a '''Persons''' inline.

models.py:
{{{#!python
from django.db import models

class Group(models.Model):
    name = models.CharField(max_length=30)

class Person(models.Model):
    group = models.ForeignKey(Group, on_delete=models.CASCADE)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
}}}

admin.py:
{{{#!python
from django.contrib import admin
from .models import *

class PersonInline(admin.StackedInline):
    model = Person
    extra = 0

@admin.register(Group)
class GroupAdmin(admin.ModelAdmin):
    inlines = [PersonInline]
}}}

==== Steps to reproduce

1. Go to the Group add page (for example, <http://localhost:8000/admin/myapp/group/add/>). Enter a Group name, add a Person with first_name and last_name, and click '''Save and continue editing'''.
2. Change the Group name. Add a second Person for the group, but enter a first_name only. A delete button ({{{X}}} icon) is available to discard the pending record: [[Image(https://s13.postimg.org/6wv1azzyv/image.png)]]
3. Click '''SAVE'''. There will be a validation error, as expected, because last_name is not provided. However, the '''Delete''' button is missing: [[Image(https://s13.postimg.org/3q0hrduyf/image.png)]]
4. '''The user is now forced to either (a) fix the validation error or (b) reload the page, discarding all unrelated changes on the page. It is not possible for the user to fix the validation error by simply canceling/deleting the pending new record.'''"	Bug	new	contrib.admin	2.0	Normal				Unreviewed	0	0	0	0	0	1
