This repository has been archived by the owner on Jul 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: use a type's get_queryset for Relay connections if it defines o…
…ne (#215) * Use a type's get_queryset for Relay connections Why: - Allow nested queries to be filtered by user and permissions This change addresses the need by: - Resolve reverse relationship type in Relay connections - Use get_queryset filter of the resolved type * Update strawberry_django_plus/type.py Co-authored-by: Thiago Bellini Ribeiro <hackedbellini@gmail.com> * Clean up conn_resolver * Preventive rename to avoid name collision * Try fix for Python < 3.10 * Simplify implementation * Add test for Relay Connection resolving Why: - Ensure no regressions when querying related models - Caught a case where prefetches were ignored - Allow tests to use a type's custom get_queryset method This change addresses the need by: - Adding a Favorite model and type - Adding a test to check the new use case - Documenting how to access custom QuerySets in types - Warm up lazy user in test client to avoid sync/async collision * Lint clean up * Fix typing checks * Add user warmup middleware Why: - get_queryset in types only supports sync context - Avoids error being called in async context This change addresses the need by: - Adding a user warmup middleware to cache user object in async context * Clean up typing * Actually warmup user with method call --------- Co-authored-by: Thiago Bellini Ribeiro <hackedbellini@gmail.com>
- Loading branch information
1 parent
4d640e7
commit bb3af76
Showing
12 changed files
with
407 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,3 +12,5 @@ exclude_lines = | |
@abstractmethod | ||
@abc.abstractmethod | ||
assert_never | ||
omit = | ||
*/tests/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Generated by Django 4.2.1 on 2023-05-30 05:00 | ||
|
||
import django.db.models.deletion | ||
from django.conf import settings | ||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
dependencies = [ | ||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
("demo", "0005_remove_issue_milestone_not_null"), | ||
] | ||
|
||
operations = [ | ||
migrations.CreateModel( | ||
name="Favorite", | ||
fields=[ | ||
("id", models.BigAutoField(primary_key=True, serialize=False, verbose_name="ID")), | ||
("name", models.CharField(max_length=32)), | ||
( | ||
"issue", | ||
models.ForeignKey( | ||
on_delete=django.db.models.deletion.CASCADE, | ||
related_name="favorite_set", | ||
to="demo.issue", | ||
), | ||
), | ||
( | ||
"user", | ||
models.ForeignKey( | ||
on_delete=django.db.models.deletion.CASCADE, | ||
related_name="favorite_set", | ||
to=settings.AUTH_USER_MODEL, | ||
), | ||
), | ||
], | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.