strawberry-graphql/strawberry-django

Better typing model property

Ouverte

#240 ouverte le 1 mars 2023

 (3 commentaires) (0 réaction) (0 personne assignée)Python (152 forks)auto 404
documentationhelp wanted

Métriques du dépôt

Stars
 (496 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

Hi, I have a model property in the django framework that returns a list of dict Is there any way to type it more easily than using a resolver?

Currently my code looks like this:

My django model:

class MySite:
	@property
	def player_data(self):
		data = [
			{
				"src": signed_movie_url(self.project_path, "video-1080p.mp4"),
				"size": 1080,
				"type": "video/mp4",
			},
			{
				"src": signed_movie_url(self.project_path, "video-720p.mp4"),
				"size": 720,
				"type": "video/mp4",
			},
			{
				"src": signed_movie_url(self.project_path, "video-540p.mp4"),
				"size": 540,
				"type": "video/mp4",
			},
		]

		return data

My types:

@strawberry.type
class SiteType:
	@strawberry.type()
	class PlayerSiteDataType:
		src: str
		size: int
		type: str

	@staticmethod
	def player_data(root):
		return [SiteType.PlayerSiteDataType(**i) for i in root.player_data]

	name: str
	player_data: List[PlayerSiteDataType] = strawberry.field(resolver=player_data)

Thanks.

Guide contributeur