forked from VimPlug/jedi
Merge pull request #1586 from PeterJCLaw/django-more-fields
Support more Django model fields
This commit is contained in:
@@ -18,6 +18,8 @@ mapping = {
|
|||||||
'CharField': (None, 'str'),
|
'CharField': (None, 'str'),
|
||||||
'TextField': (None, 'str'),
|
'TextField': (None, 'str'),
|
||||||
'EmailField': (None, 'str'),
|
'EmailField': (None, 'str'),
|
||||||
|
'GenericIPAddressField': (None, 'str'),
|
||||||
|
'URLField': (None, 'str'),
|
||||||
'FloatField': (None, 'float'),
|
'FloatField': (None, 'float'),
|
||||||
'BinaryField': (None, 'bytes'),
|
'BinaryField': (None, 'bytes'),
|
||||||
'BooleanField': (None, 'bool'),
|
'BooleanField': (None, 'bool'),
|
||||||
@@ -26,6 +28,7 @@ mapping = {
|
|||||||
'DurationField': ('datetime', 'timedelta'),
|
'DurationField': ('datetime', 'timedelta'),
|
||||||
'DateField': ('datetime', 'date'),
|
'DateField': ('datetime', 'date'),
|
||||||
'DateTimeField': ('datetime', 'datetime'),
|
'DateTimeField': ('datetime', 'datetime'),
|
||||||
|
'UUIDField': ('uuid', 'UUID'),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -71,7 +74,7 @@ def _infer_field(cls, field_name):
|
|||||||
|
|
||||||
name = field_tree_instance.py__name__()
|
name = field_tree_instance.py__name__()
|
||||||
is_many_to_many = name == 'ManyToManyField'
|
is_many_to_many = name == 'ManyToManyField'
|
||||||
if name == 'ForeignKey' or is_many_to_many:
|
if name in ('ForeignKey', 'OneToOneField') or is_many_to_many:
|
||||||
values = _get_foreign_key_values(cls, field_tree_instance)
|
values = _get_foreign_key_values(cls, field_tree_instance)
|
||||||
if is_many_to_many:
|
if is_many_to_many:
|
||||||
return ValueSet(filter(None, [
|
return ValueSet(filter(None, [
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import decimal
|
import decimal
|
||||||
|
import uuid
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
@@ -13,7 +14,13 @@ class Category(models.Model):
|
|||||||
category_name = models.CharField()
|
category_name = models.CharField()
|
||||||
|
|
||||||
|
|
||||||
|
class AttachedData(models.Model):
|
||||||
|
extra_data = models.TextField()
|
||||||
|
|
||||||
|
|
||||||
class BusinessModel(models.Model):
|
class BusinessModel(models.Model):
|
||||||
|
attached_o2o = models.OneToOneField(AttachedData)
|
||||||
|
|
||||||
category_fk = models.ForeignKey(Category)
|
category_fk = models.ForeignKey(Category)
|
||||||
category_fk2 = models.ForeignKey('Category')
|
category_fk2 = models.ForeignKey('Category')
|
||||||
category_fk3 = models.ForeignKey(1)
|
category_fk3 = models.ForeignKey(1)
|
||||||
@@ -27,6 +34,8 @@ class BusinessModel(models.Model):
|
|||||||
char_field = models.CharField()
|
char_field = models.CharField()
|
||||||
text_field = models.TextField()
|
text_field = models.TextField()
|
||||||
email_field = models.EmailField()
|
email_field = models.EmailField()
|
||||||
|
ip_address_field = models.GenericIPAddressField()
|
||||||
|
url_field = models.URLField()
|
||||||
float_field = models.FloatField()
|
float_field = models.FloatField()
|
||||||
binary_field = models.BinaryField()
|
binary_field = models.BinaryField()
|
||||||
boolean_field = models.BooleanField()
|
boolean_field = models.BooleanField()
|
||||||
@@ -35,6 +44,7 @@ class BusinessModel(models.Model):
|
|||||||
duration_field = models.DurationField()
|
duration_field = models.DurationField()
|
||||||
date_field = models.DateField()
|
date_field = models.DateField()
|
||||||
date_time_field = models.DateTimeField()
|
date_time_field = models.DateTimeField()
|
||||||
|
uuid_field = models.UUIDField()
|
||||||
tags_m2m = models.ManyToManyField(Tag)
|
tags_m2m = models.ManyToManyField(Tag)
|
||||||
|
|
||||||
unidentifiable = NOT_FOUND
|
unidentifiable = NOT_FOUND
|
||||||
@@ -59,6 +69,10 @@ model_instance.char_field
|
|||||||
model_instance.text_field
|
model_instance.text_field
|
||||||
#? str()
|
#? str()
|
||||||
model_instance.email_field
|
model_instance.email_field
|
||||||
|
#? str()
|
||||||
|
model_instance.ip_address_field
|
||||||
|
#? str()
|
||||||
|
model_instance.url_field
|
||||||
#? float()
|
#? float()
|
||||||
model_instance.float_field
|
model_instance.float_field
|
||||||
#? bytes()
|
#? bytes()
|
||||||
@@ -75,6 +89,17 @@ model_instance.duration_field
|
|||||||
model_instance.date_field
|
model_instance.date_field
|
||||||
#? datetime.datetime()
|
#? datetime.datetime()
|
||||||
model_instance.date_time_field
|
model_instance.date_time_field
|
||||||
|
#? uuid.UUID()
|
||||||
|
model_instance.uuid_field
|
||||||
|
|
||||||
|
#! ['attached_o2o = models.OneToOneField(AttachedData)']
|
||||||
|
model_instance.attached_o2o
|
||||||
|
#! ['extra_data = models.TextField()']
|
||||||
|
model_instance.attached_o2o.extra_data
|
||||||
|
#? AttachedData()
|
||||||
|
model_instance.attached_o2o
|
||||||
|
#? str()
|
||||||
|
model_instance.attached_o2o.extra_data
|
||||||
|
|
||||||
#! ['category_fk = models.ForeignKey(Category)']
|
#! ['category_fk = models.ForeignKey(Category)']
|
||||||
model_instance.category_fk
|
model_instance.category_fk
|
||||||
|
|||||||
Reference in New Issue
Block a user