Skip to content

Commit a4295d1

Browse files
authored
Merge pull request #214 from stygmate/main
make pk argument required when querying single object
2 parents b9c2127 + f9c0ad6 commit a4295d1

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

strawberry_django/filters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ def arguments(self) -> List[StrawberryArgument]:
182182
filters = self.get_filters()
183183
if self.django_model and not self.is_list:
184184
if self.is_relation is False:
185-
arguments.append(argument("pk", strawberry.ID))
185+
arguments.append(argument("pk", strawberry.ID, is_optional=False))
186186
elif filters and filters is not UNSET:
187187
arguments.append(argument("filters", filters))
188188
return super().arguments + arguments

tests/test_queries.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import pytest
44
import strawberry
5+
from graphql import GraphQLError
56
from strawberry import auto
67

78
import strawberry_django
@@ -82,6 +83,18 @@ async def test_single(query, users):
8283
assert result.data["user"] == {"name": users[0].name}
8384

8485

86+
async def test_required_pk_single(query, users):
87+
result = await query("{ user { name } }")
88+
89+
assert bool(result.errors)
90+
assert len(result.errors) == 1
91+
assert isinstance(result.errors[0], GraphQLError)
92+
assert (
93+
result.errors[0].message == "Field 'user' argument 'pk' of type 'ID!' is "
94+
"required, but it was not provided."
95+
)
96+
97+
8598
async def test_many(query, users):
8699
result = await query("{ users { name } }")
87100

0 commit comments

Comments
 (0)