‘NoneType’对象没有属性’endswith’,django,python
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了‘NoneType’对象没有属性’endswith’,django,python,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4094字,纯文字阅读大概需要6分钟。
内容图文
![‘NoneType’对象没有属性’endswith’,django,python](/upload/InfoBanner/zyjiaocheng/661/e30a05f704da423a92526b50b512bdd7.jpg)
我的项目结构是这样的:
> / blog1(项目名称)
> / blog1 / media / blog1 / media
> / blog(应用名称)
> /博客/媒体
> /静态
> /媒体
> / static /模板
我已经通过django-admin面板上传了一张照片,但是当我通过浏览器从查看页面源查看图像时,它显示了一个错误:
AttributeError at /blog/view/blog1/media/high-tech-snapshot_3.jpg
'NoneType' object has no attribute 'endswith'
追溯:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/blog/view/blog1/media/high-tech-snapshot_3.jpg
Django Version: 1.6.5
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
'embed_video')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
112. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/static.py" in serve
49. fullpath = os.path.join(document_root, newpath)
File "/usr/lib/python2.7/posixpath.py" in join
77. elif path == '' or path.endswith('/'):
Exception Type: AttributeError at /blog/view/blog1/media/high-tech-snapshot_3.jpg
Exception Value: 'NoneType' object has no attribute 'endswith'
这是我在settings.py中的目录:
STATIC_URL = '/static/'
MEDIA_URL = '/media/blog1/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media')
这是我的模特:
from django.db import models
from django.db.models import permalink
from embed_video.fields import EmbedVideoField
class Blog(models.Model):
title = models.CharField(max_length=100, unique=True)
slug = models.SlugField(max_length=100, unique=True)
body = models.TextField()
posted = models.DateTimeField(db_index=True, auto_now_add=True)
category = models.ForeignKey('blog.Category')
video = EmbedVideoField( blank=True)
photo = models.ImageField(upload_to="blog1/media/", blank=True)
def __unicode__(self):
return '%s' % self.title
@permalink
def get_absolute_url(self):
return ('view_blog_post', None, { 'slug': self.slug })
这是我的views.py:
def index(request):
return render_to_response('index.html', {
'categories': Category.objects.all(),
'posts': Blog.objects.all()[:6]
})
def view_post(request, slug):
return render_to_response('view_post.html', {
'post': get_object_or_404(Blog, slug=slug)
})
我的admin.py:
from django.contrib import admin
from blog.models import Blog
from embed_video.admin import AdminVideoMixin
class BlogAdmin(admin.ModelAdmin):
exclude = ['posted']
prepopulated_fields = {'slug': ('title',)}
admin.site.register(Blog, BlogAdmin)
我的urls.py:
from django.conf.urls import patterns, include, url
import os
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'blog1.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'blog.views.index'),
url(
r'^blog/view/(?P<slug>[^\.]+).html',
'blog.views.view_post',
name='view_blog_post'),
url(r'^About/$', 'blog.views.about', name='about'),
url(
r'^blog/category/(?P<slug>[^\.]+).html',
'blog.views.view_category',
name='view_blog_category'),
url(r'^blog/view/blog1/media/(.*)$', 'django.views.static.serve',name ='media_url'),
)
和我的view_post.html:
{% block content %}
<h2>{{ post.title }}</h2>
<p>{{ post.body }}</p>
<img src="{{ post.photo }}"/>
{% endblock %}
我确信我在犯一些愚蠢的错误,如果有人知道,请帮助我.
在此先感谢您,并对目录的错误命名感到抱歉,我是django的新手,不知道如何以正确的方式列出目录.
解决方法:
我通过在settings.py中添加此问题解决了类似的问题
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
而且也许您需要运行命令
python manage.py collectstatic
希望这可以帮助
内容总结
以上是互联网集市为您收集整理的‘NoneType’对象没有属性’endswith’,django,python全部内容,希望文章能够帮你解决‘NoneType’对象没有属性’endswith’,django,python所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。