瀏覽代碼

Эскизы

Добавлен предпросмотр эскизов
Для корректной работы необходимо установить пакет sorl-thumbnail:

sudo pip install sorl-thumbnail
Denis V. Dedkov 10 年之前
父節點
當前提交
53f680fa2a
共有 4 個文件被更改,包括 19 次插入5 次删除
  1. 1 1
      asuzr/models.py
  2. 8 1
      asuzr/tables.py
  3. 1 0
      record/settings.py
  4. 9 3
      record/urls.py

+ 1 - 1
asuzr/models.py

@@ -105,7 +105,7 @@ class Order(models.Model):
   
 #Эскизы
 class Sketch(models.Model):
-  sketch_file = models.FileField(upload_to = 'sketches')	#путь к файу
+  sketch_file = models.FileField(upload_to = 'sketches/')	#путь к файу
   order = models.ForeignKey(Order)	#id заказа
 
   def __unicode__(self):

+ 8 - 1
asuzr/tables.py

@@ -11,9 +11,16 @@ def editable(field_name):
 class EditableColumn(tables.TemplateColumn):
   def __init__(self, field_name, *args, **kwargs):
     super(tables.TemplateColumn, self).__init__(*args, **kwargs)
+    print kwargs
     template = '{{% load inplace_edit %}}\n\n{{% inplace_edit "record.{field}" auto_height = 1 %}}'.format(field = field_name)
     self.template_code = template
 
+class ThumbnailColumn(tables.TemplateColumn):
+  def __init__(self, field_name, *args, **kwargs):
+    super(tables.TemplateColumn, self).__init__(*args, **kwargs)
+    template = '{{% load thumbnail %}}\n\n{{% thumbnail record.{field} "100x100" as im %}}<img src="{{{{ im.url }}}}">{{% endthumbnail %}}'.format(field = field_name)
+    self.template_code = template
+
 class TestTable(tables.Table):
     name = EditableColumn('name', "Наименование")
     prod_period = EditableColumn('prod_period', "Время производства")
@@ -74,7 +81,7 @@ class ArchiveOrdersTable(OrdersTable):
 
 class SketchesTable(tables.Table):
   sketch_file = tables.FileColumn(verbose_name = 'Имя файла')
-  sketch_image = tables.Column(verbose_name = 'Эскиз')
+  sketch_image = ThumbnailColumn('sketch_file', verbose_name = 'Эскиз')
 
   class Meta:
     attrs = {'class': 'paleblue'}

+ 1 - 0
record/settings.py

@@ -39,6 +39,7 @@ INSTALLED_APPS = (
     'django.contrib.staticfiles',
     'inplaceeditform',
     'django_tables2',
+    'sorl.thumbnail',
     'asuzr',
 )
 

+ 9 - 3
record/urls.py

@@ -1,5 +1,8 @@
 from django.conf.urls import patterns, include, url
 from django.contrib.auth.views import login, logout
+from django.conf.urls.static import static
+from django.contrib.staticfiles.urls import staticfiles_urlpatterns
+from django.conf import settings
 
 from django.contrib import admin
 admin.autodiscover()
@@ -9,9 +12,6 @@ js_info_dict = {
 }
 
 urlpatterns = patterns('',
-    # Examples:
-    # url(r'^$', 'record.views.home', name='home'),
-    # url(r'^blog/', include('blog.urls')),
     url(r'^product/$', 'asuzr.views.prod_list'),
     url(r'^product/(?P<prod_id>\d+)/$', 'asuzr.views.prod_detail'),
     url(r'^main/(?P<day>\d+)/(?P<month>\d+)/(?P<year>\d+)/$', 'asuzr.views.main', name='asuzr-main'),
@@ -25,3 +25,9 @@ urlpatterns = patterns('',
     url(r'^accounts/logout/$', logout),
     url(r'^jsi18n$', 'django.views.i18n.javascript_catalog', js_info_dict),
 )
+
+if settings.DEBUG:
+    # static files (images, css, javascript, etc.)
+    urlpatterns += patterns('',
+        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
+        'document_root': settings.MEDIA_ROOT}))