У меня есть модель ввода статей, и у меня есть поле для выдержки и описания. Если пользователь хочет опубликовать изображение, у меня есть отдельное ImageField со стандартным файловым браузером по умолчанию.
Я пытался использовать django-filebrowser
, но мне не нравится тот факт, что для этого требуется django-grappelli
, и при этом я не обязательно нуждаюсь в утилите флэш-загрузки - кто-нибудь может порекомендовать инструмент, с помощью которого я могу управлять загрузкой изображений и в основном заменить просмотр файла, предоставляемый django браузером выбора изображений?
В будущем я бы, вероятно, захотел, чтобы оно обрабатывало изменение размера изображения и указывало размеры изображения по умолчанию для определенных типов статей.
Редактировать: Я сейчас пытаюсь adminfiles , но у меня возникают проблемы при его установке. Я взял его и добавил к своему пути в python, добавил в INSTALLED_APPS, создал для него базы данных, загрузил изображение. Я следовал инструкциям, чтобы изменить мою модель, указав adminfiles_fields
, и зарегистрировался, но это не относится к моему администратору, вот мой admin.py
для статей:
from django.contrib import admin
from django import forms
from articles.models import Category, Entry
from tinymce.widgets import TinyMCE
from adminfiles.admin import FilePickerAdmin
class EntryForm( forms.ModelForm ):
class Media:
js = ['/media/tinymce/tiny_mce.js', '/media/tinymce/load.js']#, '/media/admin/filebrowser/js/TinyMCEAdmin.js']
class Meta:
model = Entry
class CategoryAdmin(admin.ModelAdmin):
prepopulated_fields = { 'slug': ['title'] }
class EntryAdmin( FilePickerAdmin ):
adminfiles_fields = ('excerpt',)
prepopulated_fields = { 'slug': ['title'] }
form = EntryForm
admin.site.register( Category, CategoryAdmin )
admin.site.register( Entry, EntryAdmin )
Вот моя модель Entry:
class Entry( models.Model ):
LIVE_STATUS = 1
DRAFT_STATUS = 2
HIDDEN_STATUS = 3
STATUS_CHOICES = (
( LIVE_STATUS, 'Live' ),
( DRAFT_STATUS, 'Draft' ),
( HIDDEN_STATUS, 'Hidden' ),
)
status = models.IntegerField( choices=STATUS_CHOICES, default=LIVE_STATUS )
tags = TagField()
categories = models.ManyToManyField( Category )
title = models.CharField( max_length=250 )
excerpt = models.TextField( blank=True )
excerpt_html = models.TextField(editable=False, blank=True)
body_html = models.TextField( editable=False, blank=True )
article_image = models.ImageField(blank=True, upload_to='upload')
body = models.TextField()
enable_comments = models.BooleanField(default=True)
pub_date = models.DateTimeField(default=datetime.datetime.now)
slug = models.SlugField(unique_for_date='pub_date')
author = models.ForeignKey(User)
featured = models.BooleanField(default=False)
def save( self, force_insert=False, force_update= False):
self.body_html = markdown(self.body)
if self.excerpt:
self.excerpt_html = markdown( self.excerpt )
super( Entry, self ).save( force_insert, force_update )
class Meta:
ordering = ['-pub_date']
verbose_name_plural = "Entries"
def __unicode__(self):
return self.title
Редактирование # 2: Чтобы уточнить, что я переместил медиа-файлы в мой путь к медиафайлам, и они действительно отображают область изображения, я могу выгрузить в порядке, тег <<<image>>>
вставлен в мою редактируемую область MarkItUp w / Markdown, но это не отображается в предварительном просмотре MarkItUp - возможно, мне просто нужно применить |upload_tags
к этому предварительному просмотру. Я постараюсь добавить его в свой шаблон, который также публикует статью.