mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-07 20:54:29 +08:00
more values(), values_list() cases
This commit is contained in:
@@ -5,6 +5,10 @@
|
||||
reveal_type(values) # N: Revealed type is 'TypedDict({'num_posts': builtins.int, 'text': builtins.str})'
|
||||
reveal_type(values["num_posts"]) # N: Revealed type is 'builtins.int'
|
||||
reveal_type(values["text"]) # N: Revealed type is 'builtins.str'
|
||||
|
||||
values_pk = Blog.objects.values('pk').get()
|
||||
reveal_type(values_pk) # N: Revealed type is 'TypedDict({'pk': builtins.int})'
|
||||
reveal_type(values_pk["pk"]) # N: Revealed type is 'builtins.int'
|
||||
installed_apps:
|
||||
- myapp
|
||||
files:
|
||||
@@ -31,6 +35,8 @@
|
||||
- path: myapp/models.py
|
||||
content: |
|
||||
from django.db import models
|
||||
class Publisher(models.Model):
|
||||
pass
|
||||
class Blog(models.Model):
|
||||
num_posts = models.IntegerField()
|
||||
text = models.CharField(max_length=100)
|
||||
@@ -60,3 +66,26 @@
|
||||
pass
|
||||
class Blog(models.Model):
|
||||
publisher = models.ForeignKey(to=Publisher, on_delete=models.CASCADE)
|
||||
|
||||
- case: values_with_related_model_fields
|
||||
main: |
|
||||
from myapp.models import Entry
|
||||
values = Entry.objects.values('blog__num_articles', 'blog__publisher__name').get()
|
||||
reveal_type(values) # N: Revealed type is 'TypedDict({'blog__num_articles': builtins.int, 'blog__publisher__name': builtins.str})'
|
||||
|
||||
pk_values = Entry.objects.values('blog__pk', 'blog__publisher__pk').get()
|
||||
reveal_type(pk_values) # N: Revealed type is 'TypedDict({'blog__pk': builtins.int, 'blog__publisher__pk': builtins.int})'
|
||||
installed_apps:
|
||||
- myapp
|
||||
files:
|
||||
- path: myapp/__init__.py
|
||||
- path: myapp/models.py
|
||||
content: |
|
||||
from django.db import models
|
||||
class Publisher(models.Model):
|
||||
name = models.CharField(max_length=100)
|
||||
class Blog(models.Model):
|
||||
num_articles = models.IntegerField()
|
||||
publisher = models.ForeignKey(to=Publisher, on_delete=models.CASCADE)
|
||||
class Entry(models.Model):
|
||||
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
|
||||
@@ -1,4 +1,4 @@
|
||||
- case: values_list_simple_field
|
||||
- case: values_list_simple_field_returns_queryset_of_tuples
|
||||
main: |
|
||||
from myapp.models import MyUser
|
||||
reveal_type(MyUser.objects.values_list('name').get()) # N: Revealed type is 'Tuple[builtins.str]'
|
||||
@@ -11,6 +11,10 @@
|
||||
# no fields specified return all fields
|
||||
all_values_tuple = MyUser.objects.values_list().get()
|
||||
reveal_type(all_values_tuple) # N: Revealed type is 'Tuple[builtins.int, builtins.str, builtins.int]'
|
||||
|
||||
# pk as field
|
||||
pk_values = MyUser.objects.values_list('pk').get()
|
||||
reveal_type(pk_values) # N: # N: Revealed type is 'Tuple[builtins.int]'
|
||||
installed_apps:
|
||||
- myapp
|
||||
files:
|
||||
@@ -84,6 +88,11 @@
|
||||
reveal_type(all_values_named_tuple.name) # N: Revealed type is 'builtins.str'
|
||||
reveal_type(all_values_named_tuple.age) # N: Revealed type is 'builtins.int'
|
||||
reveal_type(all_values_named_tuple.is_admin) # N: Revealed type is 'builtins.bool'
|
||||
|
||||
# pk as field
|
||||
pk_values = MyUser.objects.values_list('pk', named=True).get()
|
||||
reveal_type(pk_values) # N: Revealed type is 'Tuple[builtins.int, fallback=main.Row2]'
|
||||
reveal_type(pk_values.pk) # N: # N: Revealed type is 'builtins.int'
|
||||
installed_apps:
|
||||
- myapp
|
||||
files:
|
||||
@@ -139,4 +148,29 @@
|
||||
class Publisher(models.Model):
|
||||
pass
|
||||
class Blog(models.Model):
|
||||
publisher = models.ForeignKey(to=Publisher, on_delete=models.CASCADE)
|
||||
publisher = models.ForeignKey(to=Publisher, on_delete=models.CASCADE)
|
||||
|
||||
- case: named_true_with_related_model_fields
|
||||
main: |
|
||||
from myapp.models import Entry
|
||||
values = Entry.objects.values_list('blog__num_articles', 'blog__publisher__name', named=True).get()
|
||||
reveal_type(values.blog__num_articles) # N: Revealed type is 'builtins.int'
|
||||
reveal_type(values.blog__publisher__name) # N: Revealed type is 'builtins.str'
|
||||
|
||||
pk_values = Entry.objects.values_list('blog__pk', 'blog__publisher__pk', named=True).get()
|
||||
reveal_type(pk_values.blog__pk) # N: Revealed type is 'builtins.int'
|
||||
reveal_type(pk_values.blog__publisher__pk) # N: Revealed type is 'builtins.int'
|
||||
installed_apps:
|
||||
- myapp
|
||||
files:
|
||||
- path: myapp/__init__.py
|
||||
- path: myapp/models.py
|
||||
content: |
|
||||
from django.db import models
|
||||
class Publisher(models.Model):
|
||||
name = models.CharField(max_length=100)
|
||||
class Blog(models.Model):
|
||||
num_articles = models.IntegerField()
|
||||
publisher = models.ForeignKey(to=Publisher, on_delete=models.CASCADE)
|
||||
class Entry(models.Model):
|
||||
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
|
||||
|
||||
Reference in New Issue
Block a user