テキスト編集やその他のテキスト関連のものを試して保存すると、エディターはうまく機能します。しかし、画像をアップロードしようとすると、別の 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 %}