Files
app-store-optimization/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16400.patch

34 lines
1.6 KiB
Diff

This is a Django issue but the current directory is not the Django repository. The task is asking me to generate a patch for the Django project. Let me create the patch based on the issue description and the hints provided. The fix is in `django/contrib/auth/management/__init__.py`.
Based on the issue description and hints, the problem is:
1. When `migrate` command is run with a `--database` parameter, the permission creation doesn't respect this parameter
2. When creating `Permission` objects, the `_state.db` is not set, causing `get_content_type()` to look in the default database instead of the specified one
3. The fix is to set `_state.db = using` on each `Permission` object before setting the `content_type`
Here's the patch based on the hint provided by Mariusz Felisiak:
--- a/django/contrib/auth/management/__init__.py
+++ b/django/contrib/auth/management/__init__.py
@@ -94,10 +94,14 @@ def create_permissions(
)
.values_list("content_type", "codename")
)
-
- perms = [
- Permission(codename=codename, name=name, content_type=ct)
- for ct, (codename, name) in searched_perms
- if (ct.pk, codename) not in all_perms
- ]
+ perms = []
+ for ct, (codename, name) in searched_perms:
+ if (ct.pk, codename) not in all_perms:
+ permission = Permission(
+ codename=codename,
+ name=name,
+ content_type=ct,
+ )
+ permission._state.db = using
+ perms.append(permission)
Permission.objects.using(using).bulk_create(perms)
if verbosity >= 2:
for perm in perms: