378 lines
15 KiB
JSON
378 lines
15 KiB
JSON
{
|
||
"Model_full": {
|
||
"prefix": "Model_full",
|
||
"body": [
|
||
"class ${1:MODELNAME}(models.Model):",
|
||
"\t\"\"\"${2:Model definition for $1}.\"\"\"",
|
||
"",
|
||
"\t${3:# TODO: Define fields here}",
|
||
"",
|
||
"\tclass Meta:",
|
||
"\t\t\"\"\"Meta definition for $1.\"\"\"",
|
||
"",
|
||
"\t\tverbose_name = '$1'",
|
||
"\t\tverbose_name_plural = '$1s'",
|
||
"",
|
||
"\tdef ${4|__str__,__unicode__|}(self):",
|
||
"\t\t\"\"\"Unicode representation of $1.\"\"\"",
|
||
"\t\t${7|pass,return '{}'.format(self. ) # TODO,return f'{self. }' # TODO|}",
|
||
"",
|
||
"\tdef save(self):",
|
||
"\t\t\"\"\"Save method for $1.\"\"\"",
|
||
"\t\tpass",
|
||
"",
|
||
"\tdef get_absolute_url(self):",
|
||
"\t\t\"\"\"Return absolute url for $1.\"\"\"",
|
||
"\t\treturn ('')",
|
||
"",
|
||
"\t${6:# TODO: Define custom methods here}",
|
||
""
|
||
],
|
||
"description": "Model (full)",
|
||
"scope": "source.python"
|
||
},
|
||
"Model": {
|
||
"prefix": "Model",
|
||
"body": [
|
||
"class ${1:MODELNAME}(models.Model):",
|
||
"\t\"\"\"${2:Model definition for $1}.\"\"\"",
|
||
"",
|
||
"\t${3:# TODO: Define fields here}",
|
||
"",
|
||
"\tclass Meta:",
|
||
"\t\t\"\"\"Meta definition for $1.\"\"\"",
|
||
"",
|
||
"\t\tverbose_name = '$1'",
|
||
"\t\tverbose_name_plural = '$1s'",
|
||
"",
|
||
"\tdef ${4|__str__,__unicode__|}(self):",
|
||
"\t\t\"\"\"Unicode representation of $1.\"\"\"",
|
||
"\t\t${5|pass,return '{}'.format(self. ) # TODO,return f'{self. }' # TODO|}",
|
||
""
|
||
],
|
||
"description": "Model",
|
||
"scope": "source.python"
|
||
},
|
||
"modelmixin": {
|
||
"prefix": "modelmixin",
|
||
"body": [
|
||
"class $1Mixin(models.Model):",
|
||
"\t${2:# TODO}\r\n",
|
||
"\tclass Meta:",
|
||
"\t\tabstract = True"
|
||
],
|
||
"description": "",
|
||
"scope": "source.python"
|
||
},
|
||
"queryset": {
|
||
"prefix": "qs",
|
||
"body": ["class $1QuerySet(models.QuerySet):", "\tpass"],
|
||
"description": "",
|
||
"scope": "source.python"
|
||
},
|
||
"manager": {
|
||
"prefix": "mngr",
|
||
"body": [
|
||
"class $1Manager(models.Manager):",
|
||
"\tdef get_queryset(self):",
|
||
"\t\treturn super ($1Manager, self).get_queryset().${2|filter,exclude,order_by,distinct,reverse|}($3)"
|
||
],
|
||
"description": "Add extra Manager methods",
|
||
"scope": "source.python"
|
||
},
|
||
"queryset_from_manager": {
|
||
"prefix": "qs_mngr",
|
||
"body": [
|
||
"class $1Manager(models.Manager):",
|
||
"\tdef get_queryset(self):",
|
||
"\t\treturn $1QuerySet(self.model, using=self._db)"
|
||
],
|
||
"description": "Modify the initial QuerySet the Manager returns.",
|
||
"scope": "source.python"
|
||
},
|
||
"mauto": {
|
||
"prefix": "mauto",
|
||
"body": "${1:FIELDNAME} = models.AutoField($2)",
|
||
"description": "AutoField (mauto).\n\nAn IntegerField that automatically increments according to available IDs.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mbigauto": {
|
||
"prefix": "mbigauto",
|
||
"body": "${1:FIELDNAME} = models.BigAutoField($2)",
|
||
"description": "BigAutoField (mbigauto).\n\n[New in Django 1.10.]\n\nA 64-bit integer, much like an AutoField.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mbigint": {
|
||
"prefix": "mbigint",
|
||
"body": "${1:FIELDNAME} = models.BigIntegerField($2)",
|
||
"description": "BigIntegerField (mbigint).\n\nA 64-bit integer, much like an IntegerField.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mbinary": {
|
||
"prefix": "mbinary",
|
||
"body": "${1:FIELDNAME} = models.BinaryField($2)",
|
||
"description": "BinaryField (mbinary).\n\nA field to store raw binary data.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mbool": {
|
||
"prefix": "mbool",
|
||
"body": "${1:FIELDNAME} = models.BooleanField($2)",
|
||
"description": "BooleanField (mbool).\n\nA true/false field.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mchar": {
|
||
"prefix": "mchar",
|
||
"body": "${1:FIELDNAME} = models.CharField($2, max_length=${3:50})",
|
||
"description": "CharField (mchar)",
|
||
"scope": "source.python"
|
||
},
|
||
"mcoseint": {
|
||
"prefix": "mcoseint",
|
||
"body": "${1:FIELDNAME} = models.CommaSeparatedIntegerField($2)",
|
||
"description": "CommaSeparatedIntegerField (mcoseint).\n\nThis field is deprecated since 1.9 in favor of CharField with validators.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mdate": {
|
||
"prefix": "mdate",
|
||
"body": "${1:FIELDNAME} = models.DateField($2, auto_now=${3:False}, auto_now_add=${4:False})",
|
||
"description": "DateField (mdate).\n\nA date, represented in Python by a datetime.date instance.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mdatetime": {
|
||
"prefix": "mdatetime",
|
||
"body": "${1:FIELDNAME} = models.DateTimeField($2, auto_now=${3:False}, auto_now_add=${4:False})",
|
||
"description": "DateTimeField (mdatetime).\n\nA date, represented in Python by a datetime.datetime instance.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mdecimal": {
|
||
"prefix": "mdecimal",
|
||
"body": "${1:FIELDNAME} = models.DecimalField($2, max_digits=${3:5}, decimal_places=${4:2})",
|
||
"description": "DecimalField (mdecimal).\n\nA fixed-precision decimal number, represented in Python by a Decimal instance.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mduration": {
|
||
"prefix": "mduration",
|
||
"body": "${1:FIELDNAME} = models.DurationField($2)",
|
||
"description": "DurationField (mduration).\n\nA field for storing periods of time - modeled in Python by timedelta.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"memail": {
|
||
"prefix": "memail",
|
||
"body": "${1:FIELDNAME} = models.EmailField($2, max_length=${3:254})",
|
||
"description": "EmailField (memail).\n\nA CharField that checks that the value is a valid email address.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mfile": {
|
||
"prefix": "mfile",
|
||
"body": "${1:FIELDNAME} = models.FileField($2, upload_to=${3:None}, max_length=${4:100})",
|
||
"description": "FileField (mfile).\n\nA file-upload field.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mfilepath": {
|
||
"prefix": "mfilepath",
|
||
"body": "${1:FIELDNAME} = models.FilePathField($2, path=${3:None}, match=${4:None}, recursive=${5:recursive}, max_length=${6:100})",
|
||
"description": "FilePathField (mfilepath).\n\nA CharField whose choices are limited to the filenames in a certain directory on the filesystem.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mfloat": {
|
||
"prefix": "mfloat",
|
||
"body": "${1:FIELDNAME} = models.FloatField($2)",
|
||
"description": "FloatField (mfloat).\n\nA floating-point number represented in Python by a float instance.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"fk": {
|
||
"prefix": "fk",
|
||
"body": "${1:FIELDNAME} = models.ForeignKey(${2:OTHERMODEL}, on_delete=models.${3|CASCADE,PROTECT,SET_NULL,SET_DEFAULT,SET(),DO_NOTHING|})",
|
||
"description": "ForeignKey (fk).\n\nA many-to-one relationship.\n\non_delete will become a required argument in Django 2.0. In older versions it defaults to CASCADE.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mip": {
|
||
"prefix": "mip",
|
||
"body": "${1:FIELDNAME} = models.IPAddressField($2)",
|
||
"description": "IPAddressField (mip).\n\nThis field has been deprecated since version 1.7 in favor of GenericIPAddressField.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mimg": {
|
||
"prefix": "mimg",
|
||
"body": "${1:FIELDNAME} = models.ImageField($2, upload_to=${3:None}, height_field=${4:None}, width_field=${5:None}, max_length=${5:100})",
|
||
"description": "ImageField (mimg).\n\nInherits all attributes and methods from FileField, but also validates that the uploaded object is a valid image.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mint": {
|
||
"prefix": "mint",
|
||
"body": "${1:FIELDNAME} = models.IntegerField($2)",
|
||
"description": "IntegerField (mint).\n\nAn integer. Values from -2147483648 to 2147483647 are safe in all databases supported by Django.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mgenericip": {
|
||
"prefix": "mgenericip",
|
||
"body": "${1:FIELDNAME} = models.GenericIPAddressField($2, protocol=${3:'both'}, unpack_ipv4=${4:False})",
|
||
"description": "GenericIPAddressField (mimg).\n\nAn IPv4 or IPv6 address, in string format.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"m2m": {
|
||
"prefix": "m2m",
|
||
"body": "${1:FIELDNAME} = models.ManyToManyField(${2:OTHERMODEL})",
|
||
"description": "ManyToManyField (m2m).\n\nA many-to-many relationship.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mnullbool": {
|
||
"prefix": "mnullbool",
|
||
"body": "${1:FIELDNAME} = models.NullBooleanField($2)",
|
||
"description": "NullBooleanField (mnullbool).\n\nLike a BooleanField, but allows NULL as one of the options.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"o2o": {
|
||
"prefix": "o2o",
|
||
"body": "${1:FIELDNAME} = models.OneToOneField(${2:OTHERMODEL}, on_delete=models.${3|CASCADE,PROTECT,SET_NULL,SET_DEFAULT,SET(),DO_NOTHING|})",
|
||
"description": "OneToOneField (o2o).\n\nA one-to-one relationship.\n\non_delete will become a required argument in Django 2.0. In older versions it defaults to CASCADE.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mphone": {
|
||
"prefix": "mphone",
|
||
"body": "${1:FIELDNAME} = models.PhoneNumberField($2)",
|
||
"description": "PhoneNumberField (mphone).\n\n*external package: django-phonenumber-field*\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mposint": {
|
||
"prefix": "mposint",
|
||
"body": "${1:FIELDNAME} = models.PositiveIntegerField($2)",
|
||
"description": "PositiveIntegerField (mposint).\n\nLike an IntegerField, but must be either positive or zero (0).\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mpossmallint": {
|
||
"prefix": "mpossmallint",
|
||
"body": "${1:FIELDNAME} = models.PositiveSmallIntegerField($2)",
|
||
"description": "PositiveSmallIntegerField (mpossmallint).\n\nLike a PositiveIntegerField, but only allows values under a certain (database-dependent) point.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mslug": {
|
||
"prefix": "mslug",
|
||
"body": "${1:FIELDNAME} = models.SlugField($2)",
|
||
"description": "SlugField (mslug).\n\nA slug is a short label for something, containing only letters, numbers, underscores or hyphens. They’re generally used in URLs.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"msmallint": {
|
||
"prefix": "msmallint",
|
||
"body": "${1:FIELDNAME} = models.SmallIntegerField($2)",
|
||
"description": "SmallIntegerField (msmallint).\n\nLike an IntegerField, but only allows values under a certain (database-dependent) point.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mtext": {
|
||
"prefix": "mtext",
|
||
"body": "${1:FIELDNAME} = models.TextField($2)",
|
||
"description": "TextField (mtext).\n\nA large text field.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mtime": {
|
||
"prefix": "mtime",
|
||
"body": "${1:FIELDNAME} = models.TimeField($2, auto_now=${4:False}, auto_now_add=${5:False})",
|
||
"description": "TimeField (mtime).\n\nA time, represented in Python by a datetime.time instance.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"murl": {
|
||
"prefix": "murl",
|
||
"body": "${1:FIELDNAME} = models.URLField($2, max_length=${3:200})",
|
||
"description": "URLField (murl).\n\nA CharField for a URL.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"musstate": {
|
||
"prefix": "musstate",
|
||
"body": "${1:FIELDNAME} = models.USStateField($2)",
|
||
"description": "USStateField (musstate).\n\n*external package: django-localflavor*\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"muuid": {
|
||
"prefix": "muuid",
|
||
"body": "${1:FIELDNAME} = models.UUIDField($2)",
|
||
"description": "UUIDField (muuid).\n\nA field for storing universally unique identifiers. Uses Python’s UUID class.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mxml": {
|
||
"prefix": "mxml",
|
||
"body": "${1:FIELDNAME} = models.XMLField($2)",
|
||
"description": "XMLField (mxml).\n\n*All uses of XMLField can be replaced with TextField. This field has been deprecated since version 1.3*\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mstore": {
|
||
"prefix": "mstore",
|
||
"body": "${1:FIELDNAME} = HStoreField()",
|
||
"description": "HStoreField (mstore).\n\n*PostgreSQL specific model fields*.\n\nA field for storing key-value pairs. The Python data type used is a dict.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"mjson": {
|
||
"prefix": "mjson",
|
||
"body": "${1:FIELDNAME} = JSONField()",
|
||
"description": "JSONField (mjson).\n\n*PostgreSQL specific model fields*.\n\n[New in Django 1.11.]\n\nA field for storing JSON encoded data.\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"marray": {
|
||
"prefix": "marray",
|
||
"body": "${1:FIELDNAME} = ArrayField()",
|
||
"description": "ArrayField (marray).\n\n*PostgreSQL specific model fields*.\n\nA field for storing lists of data\n\n",
|
||
"scope": "source.python"
|
||
},
|
||
"fmai": {
|
||
"prefix": "fmai",
|
||
"body": "from .managers import $1QuerySet",
|
||
"description": "",
|
||
"scope": "source.python"
|
||
},
|
||
"fmi": {
|
||
"prefix": "fmi",
|
||
"body": "from .models import $1",
|
||
"description": "",
|
||
"scope": "source.python"
|
||
},
|
||
"imodels": {
|
||
"prefix": "imodels",
|
||
"body": "from django.db import models",
|
||
"description": "from ... import models",
|
||
"scope": "source.python"
|
||
},
|
||
"ipy2_unicode_compatible": {
|
||
"prefix": "iuc",
|
||
"body": "from django.utils.encoding import python_2_unicode_compatible",
|
||
"description": "For forwards compatibility, this decorator is available as of Django 1.4.2.",
|
||
"scope": "source.python"
|
||
},
|
||
"ipostgresmf": {
|
||
"prefix": "ipostgresmf",
|
||
"body": "from django.contrib.postgres.fields import ${1|ArrayField,JSONField,HStoreField|}",
|
||
"description": "PostgreSQL specific model fields",
|
||
"scope": "source.python"
|
||
},
|
||
"isignals": {
|
||
"prefix": "isignals",
|
||
"body": "from django.db.models.signals import ${1|pre_init,post_init,pre_save,post_save,pre_delete,post_delete,m2m_changed,class_prepared,Management signals,pre_migrate,post_migrate|}",
|
||
"description": "Signals for Django Model",
|
||
"scope": "source.python"
|
||
},
|
||
"__str__": {
|
||
"prefix": "str",
|
||
"body": ["def __str__(self):", "\treturn self${1: # TODO}"],
|
||
"description": "",
|
||
"scope": "source.python"
|
||
},
|
||
"get_absolute_url": {
|
||
"prefix": "get_absolute_url",
|
||
"body": [
|
||
"def get_absolute_url(self):",
|
||
"\tfrom django.core.urlresolvers import reverse",
|
||
"\treturn reverse('$1', kwargs={'pk': self.pk})"
|
||
],
|
||
"description": "",
|
||
"scope": "source.python"
|
||
},
|
||
"receiver": {
|
||
"prefix": "receiver",
|
||
"body": [
|
||
"def ${1:FUNCTIONNAME}_${2|pre_init,post_init,pre_save,post_save,pre_delete,post_delete,m2m_changed,class_prepared,Management signals,pre_migrate,post_migrate|}_receiver(sender, instance, *args, **kwargs):",
|
||
"\tpass",
|
||
"\n\n${2|pre_init,post_init,pre_save,post_save,pre_delete,post_delete,m2m_changed,class_prepared,Management signals,pre_migrate,post_migrate|}.connect(${1:name}_${2|pre_init,post_init,pre_save,post_save,pre_delete,post_delete,m2m_changed,class_prepared,Management signals,pre_migrate,post_migrate|}_receiver, sender=${3:MODELNAME})"
|
||
],
|
||
"description": "",
|
||
"scope": "source.python"
|
||
}
|
||
}
|