我在尝试删除上传的图片时遇到了问题.
错误是这样的:
SuspiciousOperation: Attempted access to '/media/artists/12-stones/154339.jpg' denied.
Run Code Online (Sandbox Code Playgroud)
看完后看起来错误是因为它正在寻找错误位置的图像(注意第一个斜杠,/ media /文件系统上不存在)
我的MEDIA_ROOT和MEDIA_URL是:
MEDIA_ROOT = '/home/tsoporan/site/media/'
MEDIA_URL = "/media/
Run Code Online (Sandbox Code Playgroud)
我的模型upload_to参数传递了这个函数:
def get_artist_path(instance, filename):
return os.path.join('artists', slugify(instance.name), filename)
Run Code Online (Sandbox Code Playgroud)
我的问题是:
1)如何解决此问题以备将来上传?
2)是否可以修复当前图像的路径而无需重新上载?
此致,提图斯
我试图保存一个formset但它似乎绕过is_valid(),即使有必要的字段.
为了测试这个我有一个简单的形式:
class AlbumForm(forms.Form):
name = forms.CharField(required=True)
Run Code Online (Sandbox Code Playgroud)
风景:
@login_required
def add_album(request, artist):
artist = Artist.objects.get(slug__iexact=artist)
AlbumFormSet = formset_factory(AlbumForm)
if request.method == 'POST':
formset = AlbumFormSet(request.POST, request.FILES)
if formset.is_valid():
return HttpResponse('worked')
else:
formset = AlbumFormSet()
return render_to_response('submissions/addalbum.html', {
'artist': artist,
'formset': formset,
}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
和模板:
<form action="" method="post" enctype="multipart/form-data">{% csrf_token %}
{{ formset.management_form }}
{% for form in formset.forms %}
<ul class="addalbumlist">
{% for field in form %}
<li>
{{ field.label_tag }}
{{ field }}
{{ field.errors }}
</li>
{% endfor …Run Code Online (Sandbox Code Playgroud) 作为一个整体,我对lxml和HTML Parsers相当新.我想知道是否有办法用另一个元素替换树中的元素......
例如,我有:
body = """<code> def function(arg): print arg </code> Blah blah blah <code> int main() { return 0; } </code> """
doc = lxml.html.fromstring(body)
codeblocks = doc.cssselect('code')
for block in codeblocks:
lexer = guess_lexer(block.text_content())
hilited = highlight(block.text_content(), lexer, HtmlFormatter())
doc.replace(block, hilited)
Run Code Online (Sandbox Code Playgroud)
我想沿着这些行做一些事情,但这会导致"TypeError",因为"hilited"不是lxml.etree._Element.
这可行吗?
问候,