2012-05-02 6 views
1

私はそうのようなモデル「ポスト」と「イメージ」で、ブログを構築しています:DjangoのDojo Rich Editor:admin.py設定を修正しますか?

class Post(models.Model): 
    title = models.CharField(max_length=1000) 
    author = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 
    text = models.TextField(max_length=10000) 

class Image(models.Model): 
    post = models.ForeignKey(Post, related_name='images') 
    image = models.ImageField(upload_to='photos/%Y/%m/%d') 
    caption = models.CharField(max_length=1000,blank=True) 

私はここに例 に従うことによって、私のadminサイトで道場豊富なエディタを実装しようとしてきました。

http://lazutkin.com/blog/2011/mar/13/using-dojo-rich-editor-djangos-admin/

しかし、豊富な編集者とのインスタンスに関連する画像のアップロードのためのModelAdminのクラスの両方の登録から私を保っている私のadmin.pyファイルの設定との間の干渉のいくつかの種類があります「ポスト」。私のadmin.pyファイルで次のコードを使用している場合:

from django.contrib.admin import site, ModelAdmin 
import models 

class CommonMedia: 
    js = (
     'https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojo/dojo.xd.js', 
     'editor.js', 
    ) 
    css = { 
     'all': ('editor.css',), 
    } 

site.register(models.Post, 
    Media = CommonMedia, 
) 

リッチテキストエディタが正常に表示されます。しかし、画像をアップロードするためのコードをいくつか追加すると、次のようになります。

from blogs.models import Post,Image 
from django.contrib import admin 
from django.contrib.admin import site, ModelAdmin 
import models 


class CommonMedia: 
    js = (
    'https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojo/dojo.xd.js', 
    'editor.js', 
) 
    css = { 
    'all': ('editor.css',), 
    } 

class PostImageInline(admin.TabularInline): 
    model = Image 
    extra = 5 

class PostAdmin(admin.ModelAdmin): 
    inlines = [PostImageInline] 

site.register(models.Post, 
    list_display = ('text',), 
    search_fields = ['text',], 
    Media = CommonMedia, 
) 

admin.site.unregister(Post) 

admin.site.register(Post, PostAdmin) 

リッチエディタが表示されません。私はこれが "admin.site.unregister(Post)"行によるものだと推測していますが、私が使用していない場合は、 "Model Postは既に登録されています"というエラーが表示されます。代わりに、その行と "admin.site.register(Post、PostAdmin)"から "Post"の両方を削除すると、エラーが発生します: "'MediaDefiningClass'オブジェクトは反復可能ではありません。誰もがこれを解決する方法を知っているので、PostAdminとリッチエディタの両方を同じページに持つことができますか?

答えて

2

/home/guillaume/mysite/blogs/static/editor.jsここではURLを入力してください。おそらく、/static/editor.js

また、firefoxのchrome/safariまたはfirebugには、Webインスペクタを使用してコンソールでエラーを検出できます。

+0

どのプレフィックスがURLに使用されていますか?それはSTATIC_URLプレフィックスか、あるいはsettings.pyにリストされている別のプレフィックスですか? – GChorn

+0

'STATIC_URL + 'editor.js''、はい – ilvar

+0

「もう1つ」を意味しますか? – ilvar

関連する問題