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