2014-12-23 47 views
0

我在Djano Admin 中有一個可用的ImageCroppingMixin視圖所以我可以調整裁剪區域並保存圖像及其裁切設置。我可以使用django-image-cropping(ImageCroppingMixin)與Django Admin TabularInline視圖嗎?

但我也希望能夠編輯的圖片,當我觀看「Referentie」作爲一個整體(顯示爲a admin.TabularInline視圖中的所有圖片)我不斷收到這樣

純文本字段在相應圖片的TabularInline視圖中。

我的admin.py代碼:

class ReferentieFotoAdmin(ImageCroppingMixin, admin.ModelAdmin): 
    list_display = ('foto', 'referentie', 'volgnummer', 'op_frontpage',) 
    ordering =("-volgnummer",) 


class ReferentieFotoInline(admin.TabularInline): 
    model = ReferentieFoto 


class ReferentieDetailInline(admin.TabularInline): 
    model = ReferentieDetail 

class ReferentieAdmin(admin.ModelAdmin): 
    inlines = [ 
       ReferentieDetailInline, 
       ReferentieFotoInline, 
       ] 
    ordering = ("volgnummer",) 
    list_filter = ['datum', 'volgnummer'] 


class TipAdmin(admin.ModelAdmin): 
    ordering = ("volgnummer",) 

class SiteInfoAdmin(admin.ModelAdmin): 
    def has_add_permission(self, request): 
     return False 


class KlantAdminSite(AdminSite): 
    klantInfo = SiteInfo.objects.get(id=1) 
    site_header = "Websitebeheer voor: " + klantInfo.website_naam + " | " + klantInfo.bedrijfsslogan 
    index_title = "Sitebeheer - Home" 


adminCappaert = KlantAdminSite('CappaertAdmin') 


django.contrib.admin.site = adminCappaert 

autodiscover() 

adminCappaert.register(Referentie, ReferentieAdmin) 
adminCappaert.register(ReferentieFoto, ReferentieFotoAdmin) 
adminCappaert.register(SiteInfo, SiteInfoAdmin) 
adminCappaert.register(DeKlantSpreekt) 
adminCappaert.register(Tip, TipAdmin) 
adminCappaert.register(ContactBericht) 

models.py


class ReferentieFoto(models.Model): 
    foto = models.ImageField(upload_to='referenties', blank=True, null=True) 
    cropping_referenties = ImageRatioField('foto', "866x461", size_warning=True) 
    referentie = models.ForeignKey(Referentie) 
    volgnummer = models.PositiveSmallIntegerField(default=0) 
    op_frontpage = models.BooleanField(default=False) 
    cropping_frontpage = ImageRatioField('foto', "1920x656", size_warning=True) 


    class Meta: 
     verbose_name = "Referentiefoto" 
     verbose_name_plural = "Referentiefoto's" 
class Referentie(models.Model): 
    titel = models.CharField(max_length=50) 
    beschrijving = models.TextField() 
    datum = models.DateField() 
    volgnummer = models.SmallIntegerField(default=0) 

    def __unicode__(self): 
     return self.titel + ' - ' +str(self.datum) 

    class Meta: 
     verbose_name = "Referentie" 
     verbose_name_plural = "Referenties" 

任何想法如何,我可以做內聯類的觀點相同?

已經謝謝了!

+1

SOLUTION:類ReferentieDetailInline(ImageCroppingMixin,admin.TabularInline): 模型= ReferentieDetail – brecht

回答

0

在你admin.py

class ImageInline(admin.TabularInline): 
     model = ImageModel 
     extra = 0 

     def formfield_for_dbfield(self, db_field, **kwargs): 
      crop_fields = getattr(self.model, 'crop_fields', {}) 
      if db_field.name in crop_fields: 
       kwargs['widget'] = image_cropping.ImageCropWidget 

      return super(ImageInline, self).formfield_for_dbfield(db_field, **kwargs) 

這個解決方案正常工作與Django的1.8.x的

相關問題