aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/vim-snippets/snippets/django.snippets
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/vim-snippets/snippets/django.snippets')
-rw-r--r--vim/bundle/vim-snippets/snippets/django.snippets112
1 files changed, 112 insertions, 0 deletions
diff --git a/vim/bundle/vim-snippets/snippets/django.snippets b/vim/bundle/vim-snippets/snippets/django.snippets
new file mode 100644
index 0000000..e2a8d6d
--- /dev/null
+++ b/vim/bundle/vim-snippets/snippets/django.snippets
@@ -0,0 +1,112 @@
+# Model Fields
+
+# Note: Optional arguments are using defaults that match what Django will use
+# as a default, e.g. with max_length fields. Doing this as a form of self
+# documentation and to make it easy to know whether you should override the
+# default or not.
+
+# Note: Optional arguments that are booleans will use the opposite since you
+# can either not specify them, or override them, e.g. auto_now_add=False.
+
+snippet auto
+ ${1:FIELDNAME} = models.AutoField(${0})
+snippet bigint
+ ${1:FIELDNAME} = models.BigIntegerField(${0})
+snippet binary
+ ${1:FIELDNAME} = models.BinaryField(${0})
+snippet bool
+ ${1:FIELDNAME} = models.BooleanField(${0:default=True})
+snippet char
+ ${1:FIELDNAME} = models.CharField(max_length=${2}${0:, blank=True})
+snippet comma
+ ${1:FIELDNAME} = models.CommaSeparatedIntegerField(max_length=${2}${0:, blank=True})
+snippet date
+ ${1:FIELDNAME} = models.DateField(${2:auto_now_add=True, auto_now=True}${0:, blank=True, null=True})
+snippet datetime
+ ${1:FIELDNAME} = models.DateTimeField(${2:auto_now_add=True, auto_now=True}${0:, blank=True, null=True})
+snippet decimal
+ ${1:FIELDNAME} = models.DecimalField(max_digits=${2}, decimal_places=${0})
+snippet email
+ ${1:FIELDNAME} = models.EmailField(max_length=${2:75}${0:, blank=True})
+snippet file
+ ${1:FIELDNAME} = models.FileField(upload_to=${2:path/for/upload}${0:, max_length=100})
+snippet filepath
+ ${1:FIELDNAME} = models.FilePathField(path=${2:"/abs/path/to/dir"}${3:, max_length=100}${4:, match="*.ext"}${5:, recursive=True}${0:, blank=True, })
+snippet float
+ ${1:FIELDNAME} = models.FloatField(${0})
+snippet image
+ ${1:FIELDNAME} = models.ImageField(upload_to=${2:path/for/upload}${3:, height_field=height, width_field=width}${0:, max_length=100})
+snippet int
+ ${1:FIELDNAME} = models.IntegerField(${0})
+snippet ip
+ ${1:FIELDNAME} = models.IPAddressField(${0})
+snippet nullbool
+ ${1:FIELDNAME} = models.NullBooleanField(${0})
+snippet posint
+ ${1:FIELDNAME} = models.PositiveIntegerField(${0})
+snippet possmallint
+ ${1:FIELDNAME} = models.PositiveSmallIntegerField(${0})
+snippet slug
+ ${1:FIELDNAME} = models.SlugField(max_length=${2:50}${0:, blank=True})
+snippet smallint
+ ${1:FIELDNAME} = models.SmallIntegerField(${0})
+snippet text
+ ${1:FIELDNAME} = models.TextField(${0:blank=True})
+snippet time
+ ${1:FIELDNAME} = models.TimeField(${2:auto_now_add=True, auto_now=True}${0:, blank=True, null=True})
+snippet url
+ ${1:FIELDNAME} = models.URLField(${2:verify_exists=False}${3:, max_length=200}${0:, blank=True})
+snippet xml
+ ${1:FIELDNAME} = models.XMLField(schema_path=${2:None}${0:, blank=True})
+# Relational Fields
+snippet fk
+ ${1:FIELDNAME} = models.ForeignKey(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${0:, to_field=''})
+snippet m2m
+ ${1:FIELDNAME} = models.ManyToManyField(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, symmetrical=False}${6:, through=''}${0:, db_table=''})
+snippet o2o
+ ${1:FIELDNAME} = models.OneToOneField(${2:OtherModel}${3:, parent_link=True}${4:, related_name=''}${5:, limit_choices_to=}${0:, to_field=''})
+
+# Code Skeletons
+
+snippet form
+ class ${1:FormName}(forms.Form):
+ """${2:docstring}"""
+ ${0}
+
+snippet model
+ class ${1:ModelName}(models.Model):
+ """${2:docstring}"""
+ ${3}
+
+ class Meta:
+ ${4}
+
+ def __unicode__(self):
+ ${5}
+
+ def save(self, *args, **kwargs):
+ ${6}
+
+ @models.permalink
+ def get_absolute_url(self):
+ return ('${7:view_or_url_name}' ${0})
+
+snippet modeladmin
+ class ${1:ModelName}Admin(admin.ModelAdmin):
+ ${0}
+
+ admin.site.register($1, $1Admin)
+
+snippet tabularinline
+ class ${0:ModelName}Inline(admin.TabularInline):
+ model = $1
+
+snippet stackedinline
+ class ${0:ModelName}Inline(admin.StackedInline):
+ model = $1
+
+snippet r2r
+ return render_to_response('${1:template.html}', {
+ ${2}
+ }${0:, context_instance=RequestContext(request)}
+ )