Rackspace Cloudfiles和Django Cumulus

时间:2013-07-19 11:08:01

标签: django rackspace-cloud cloudfiles

在过去的两天里,我确实失去了耐心,试图让Cloudfiles为我的项目工作(使用积云)。以下是一些问题:

1。)有时我使用admin上传任何照片(创建模型并使用admin注册)...照片看起来像上传但是当我尝试使用Photo.objects.all的视图功能访问它时()甚至转到cloudfiles控制面板......图像根本没有打开。我找不到资源。我检查并仔细检查该区域(芝加哥是我的默认设置)设置是否与我联系....但我不这么认为。

2.。)我使用了collectstatic方法成功收集容器中的所有静态文件,并且我能够成功地为它们提供服务。当我点击链接时(例如) - http://ed770b871265201bf471-14f03984d90730040890dd30a2d85248.r68.cf2.rackcdn.com/admin/css/base.css

我能够看到结果,我相信你也能看到它。

但是当我试图在我的模板中使用STATIC_URL时 - 管理页面没有他们的CSS工作,但我的登录/主页完全用我的样式呈现。

以下是我的设置文件/我的查看功能以及任何重要的内容 -

STATIC_ROOT = ''
STATIC_URL = 'http://ed770b871265201bf471-14f03984d90730040890dd30a2d85248.r68.cf2.rackcdn.com/'
STATICFILES_DIRS = (
    os.path.join(PROJECT_DIR,'static'),
)

CUMULUS = {
    'USERNAME': '***',
    'API_KEY': '****',
    'CONTAINER': 'photos',
    'STATIC_CONTAINER':'static',
    'SERVICENET': False, # whether to use rackspace's internal private network
    'FILTER_LIST': [],
    'TIMEOUT' : 60
}
DEFAULT_FILE_STORAGE = 'cumulus.storage.CloudFilesStorage'
STATICFILES_STORAGE = 'cumulus.storage.CloudFilesStaticStorage'

模型文件部分

class Photo(models.Model):
    username = models.ForeignKey(User)
    image = models.ImageField(upload_to='photos')
    alt_text = models.CharField(max_length=255)

admin.site.register(Photo)

2 个答案:

答案 0 :(得分:0)

这是你请求凯尔的视图功能。

def profile_detail(request):
        if request.user.is_authenticated():
            username = request.user.get_username()
            # userid = User.objects.get(username=username).values('__id')
            userdetails = User.objects.filter(username=username)
            photo = Photo.objects.get(username=request.user.id)
            return render_to_response('profile_detail.html',{'userdetails':userdetails,'username':username,'photo':photo},
                                        context_instance=RequestContext(request))

和profile_detail的模板 -

{% extends 'profile.html' %}

{% load bootstrap_toolkit %}

{% block content %}

    <img src="{{ photo.image.url }}" alt="{{ photo.alt_text }}" />
    <br>
    <p>{{ user.first_name }}</p>
    <p>{{ user.last_name }}</p>
    <p>{{ user.email }}</p>

{% endblock %}

我刚刚检查过我可以在托管网站(生产)上查看图片(不知道如何),但仍然无法在我的开发环境中进行查看。

Kyle你可以在'MYProfile'页面查看你的testaccount是否有企鹅图片吗? :)感谢您对此进行调查:)

答案 1 :(得分:0)

图像在那里,但可能不在你期望的位置。

您当前网站上的链接:

http://d12df125d01b8a258a3a-8112fdc02f7d385b44f56eb9e899d81c.r88.cf2.rackcdn.com/photos/Penguins.jpg

图像/文件实际上是:

http://d12df125d01b8a258a3a-8112fdc02f7d385b44f56eb9e899d81c.r88.cf2.rackcdn.com/photos%5CPenguins.jpg

%5C\而不是/。这有所不同,因为它们是键(键是“路径”,值是文件)。您可能想要检查这些内容的上传方式,并可能将它们标准化为常规斜杠(这些是在您使用Windows计算机时上传的吗?)。