整合Photologue

4 django photologue imagekit django-imagekit

我想将photologue与我的Django应用程序集成,并用它来显示车辆库存中的照片...有点像Boost Motor Group Inc.提供的内容.我已经集成了应用程序,所以下一步我正在尝试弄清楚如何将其连接到我的车辆模型以及如何显示照片.我的车型看起来像BTW

class Vehicle(models.Model):
    stock_number = models.CharField(max_length=6, blank=False)
    vin = models.CharField(max_length=17, blank=False)
    common_vehicle = models.ForeignKey(CommonVehicle)
    exterior_colour = models.ForeignKey(ExteriorColour)
    interior_colour = models.ForeignKey(InteriorColour)
    interior_type = models.ForeignKey(InteriorType)
    odometer_unit = models.ForeignKey(OdometerUnit)
    status = models.ForeignKey(Status)
    odometer_reading = models.PositiveIntegerField()
    selling_price = models.PositiveIntegerField()
    purchase_date = models.DateField()
    sales_description = models.CharField(max_length=60, blank=False)
    feature_sets = models.ManyToManyField(FeatureSet, blank=True)
    features = models.ManyToManyField(Feature, blank=True)

    def __unicode__(self):
        return self.stock_number
Run Code Online (Sandbox Code Playgroud)

Jus*_*oll 8

为了您的目的,我建议您查看django-imagekit(我写了imagekit和photologue).它被设计为集成到其他应用程序中,而不是作为独立的应用程序本身.在那之后,正如Dominic所说,我们需要更多地了解您的要求.

  • +1 作为对 Photologue 表示感谢的一种相当可悲的方式 - 目前非常好地为 aarongriffin.co.uk 提供支持。 (2认同)

Vik*_*ica 5

我使用ImageKit(太棒了!)

model.py

from imagekit.models import ImageModel
class Photo(ImageModel):
    name = models.CharField(max_length=100)
    original_image = models.ImageField(upload_to='photos')
    num_views = models.PositiveIntegerField(editable=False, default=0)
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')

    class IKOptions:
        # This inner class is where we define the ImageKit options for the model
        spec_module = 'cms.specs'
        cache_dir = 'photos'
        image_field = 'original_image'
        save_count_as = 'num_views'

class Vehicle(models.Model):
    images = generic.GenericRelation('Photo', blank = True, null = True)  
Run Code Online (Sandbox Code Playgroud)

specs.py

from imagekit.specs import ImageSpec 
from imagekit import processors 
from imagekit.lib import *

# first we define our thumbnail resize processor 
class ResizeThumb(processors.Resize): 
    width = 100 
    height = 75 
    crop = True

# now lets create an adjustment processor to enhance the image at small sizes 
class EnchanceThumb(processors.Adjustment): 
    contrast = 1.2 
    sharpness = 1.1 

# now we can define our thumbnail spec 
class Thumbnail(ImageSpec): 
    processors = [ResizeThumb, EnchanceThumb] 
Run Code Online (Sandbox Code Playgroud)

在您的模板中,您将访问此缩略图,如下所示:

{% for p in vehicle.images.all %}
   {{ p.get_thumbnail.url }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

admin.py看起来像这样:

class ImagesInline(generic.GenericTabularInline):
    model = Photo
    max_num =4

class VehicleAdmin(admin.ModelAdmin):
    inlines = [ImagesInline]
Run Code Online (Sandbox Code Playgroud)

所有关于ImageKit

编辑

将文件specs.py添加到你的应用程序并告诉ImageKit它是这样的

  class IKOptions:
        # This inner class is where we define the ImageKit options for the model
        spec_module = 'cms.specs # ur_app.specs
Run Code Online (Sandbox Code Playgroud)

编辑2

在Photo-Model中添加一个字段,以保存它显示的视图/内容.即ChoiceField

在视图/模板中,您可以对其进行过滤