diff --git a/winget/admin.py b/winget/admin.py index 037f8b2..f7159d3 100644 --- a/winget/admin.py +++ b/winget/admin.py @@ -47,7 +47,6 @@ class InstallerInline(StackedInline): model = Installer form = InstallerForm readonly_fields = ('sha256',) - extra = 0 def get_queryset(self, request): qs = super().get_queryset(request) @@ -55,6 +54,13 @@ class InstallerInline(StackedInline): return qs return qs.filter(version__package__tenant__user=request.user) + def get_extra(self, request, obj: Version = None, **kwargs): + # Show one empty Installer form when the version does not yet have an + # associated installer. Otherwise, don't add another Installer form. + if obj and obj.installer_set.exists(): + return 0 + return 1 + class VersionAdmin(ModelAdmin): inlines = (InstallerInline,)