0

テキスト編集やその他のテキスト関連のものを試して保存すると、エディターはうまく機能します。しかし、画像をアップロードしようとすると、別の URL が取得されます。私は窓にいます。これが原因で、この投稿の投稿を見たのですが、どちらも役に立ちませんでした。それは保存され、それぞれに独自のサムネイルもあります。しかし、それは間違ったURLです。画像のsrcを確認したところ、こんな感じでした、

<img alt="" src="/media/3/10/17Hydrangeas.jpg" />

本来ならこうあるべきだったのですが、

<img alt="" src="/media/2013/10/17/Hydrangeas.jpg" />

そして、画像のsrcがこのようになることもありますが、

<img alt="" src="/media/3/10/17" />

これは私のsettings.pyのスニペットです:

CKEDITOR_UPLOAD_PATH = 'C:/Users/Nanyoo/web/demo/media'
MEDIA_ROOT = 'C:/Users/Nanyoo/web/demo/media'

その URL を urls.py に含めました。

(r'^ckeditor/', include('ckeditor.urls')),

models.py:

from django.db import models
from datetime import datetime
from django.contrib.auth.models import User
from time import time


def get_upload_file_name(instance, filename):
    return "uploaded_files/%s_%s" %(str(time()).replace('.','_'), filename)

class Blog(models.Model):
    title = models.CharField(max_length=200)
    image = models.ImageField(upload_to=get_upload_file_name, blank=True)
    pub_date = models.DateTimeField(default=datetime.now)
    creator = models.ForeignKey(User, related_name="creator_set")
    body = models.TextField()

forms.py で:

from django import forms
from django_summernote.widgets import SummernoteWidget
from ckeditor.widgets import CKEditorWidget

class BlogForm(forms.Form):
    title = forms.CharField(max_length=200,widget=SummernoteWidget())
    body = forms.CharField(widget=CKEditorWidget())

index.html で:

        {% for blog in blogs %}
        <div id="page">
                <h1>{{ blog.title | safe}}</h1>
                <p>{{ blog.body | safe}}</p>
        </div>
        {% endfor %}

HTMLの私のフォーム:

{% block content %} 
    <form method="post" action=".">
    {% csrf_token %}
    <fieldset id="create_blog">
        {{form.media}}
        {{ form.as_p}}
        <input type="submit" value="Post Blog" />
    </fieldset>
    </form>
{% endblock %}
4

3 に答える 3

0

CKEDITOR_UPLOAD_PATH は MEDIA_ROOT に対して相対的です。

https://github.com/django-ckeditor/django-ckeditor#id2

あなたの場合、それはあるべきです

CKEDITOR_UPLOAD_PATH = ''

これは私にとってはうまくいきました。正直なところ、これらの *_PATH の問題はすべて、おそらく私にとって Django の最も困難な部分でした。

UPD: おそらくあなたの問題は別の種類のものだったようです。しかし、私はあなたの設定にエラーがあることに気付きました。それで問題があり、他の人がこの問題と私の答えを見つけるかもしれないので、それを修正したかったのです。投稿時からデフォルトが変更されている場合は、設定が正しかったのかもしれません。

于 2015-03-29T21:33:04.143 に答える