﻿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
29676	has_add_permission() returning False in TabularInline form raises exception in contrib.admin	Ivan Belokobylskiy	nobody	"I have TabularInline form does not have add permission and not all fields are read-only. 
Its model has a FK to parent model without any restrictions.
When I try to create a new parent model via contrib.admin form KeyError exception raised.


This example application fails on Django 2.1, Python 3.6 when I try to visit 
http://localhost:8000/admin/app/parentmodel/add/
It raises {{{KeyError: 'editable_field'}}}

=== models.py
{{{
from django.db import models


class ParentModel(models.Model):
    name = models.CharField(max_length=255)


class InlineModel(models.Model):
    editable_field = models.CharField(max_length=255)
    readonly_field = models.CharField(max_length=255)
    parent = models.ForeignKey(ParentModel, on_delete=models.CASCADE)
}}}


=== admin.py
{{{
from django.contrib import admin

from .models import InlineModel, ParentModel


class InlineModelInline(admin.TabularInline):
    model = InlineModel
    fields = (
        'editable_field',
        'readonly_field',
    )
    readonly_fields = (
        'readonly_field',
    )

    def has_add_permission(self, request, obj):
        return False


@admin.register(ParentModel)
class ParentModelAdmin(admin.ModelAdmin):
    fields = ['name']
    inlines = [InlineModelInline]
}}}"	Bug	closed	contrib.admin	2.1	Normal	duplicate	admin has_add_permission	Ivan Belokobylskiy	Unreviewed	0	0	0	0	0	0
