나는 "Uploading images using Django Admin?"에서 예제를 시도했지만 불행히도 나는 항상 실패하고 있습니다.장고 관리자를 사용하여 이미지를 업로드하는 동안 TemplateSyntaxError
모델은 다음과 같습니다는
from django.db import models
from django.contrib import admin
class Celebrity(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
return self.name
class Image(models.Model):
celebrity = models.ForeignKey(Celebrity)
image = models.ImageField('Bild', upload_to="files/")
def __unicode__(self):
return self.image
class InlineImage(admin.TabularInline):
model = Image
class CelebrityAdmin(admin.ModelAdmin):
inlines = [InlineImage]
admin.site.register(Celebrity, CelebrityAdmin)
MEDIA_ROOT은 다음과 같습니다
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{ 'document_root': 'c:/python/django/apps/af/neu/images/media/files' }),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
:
이
MEDIA_ROOT = 'c:/python/django/apps/af/neu/images/media/'
는 URL입니다 이 구성 업로드가 작동하지만로
그때 나는 다음 역 추적 얻을 편집하려고 할 때 :
MEDIA_ROOT = os.path.join(os.path.dirname(file), "media").replace(r"\\", "//"),
또는
: 나는 또한 같은 MEDIA_ROOT을 시도Environment:
Request Method: GET
Request URL: http://localhost:8000/admin/image/celebrity/3/
Django Version: 1.3
Python Version: 2.6.6
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'debug_toolbar',
'images.image']
Installed Middleware:
('debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Template error:
In template c:\python\lib\site-packages\django\contrib\admin\templates\admin\edit_inline\tabular.html, error at line 27
Caught TypeError while rendering: coercing to Unicode: need string or buffer, ImageFieldFile found
17 :
18 : <tbody>
19 : {% for inline_admin_form in inline_admin_formset %}
20 : {% if inline_admin_form.form.non_field_errors %}
21 : <tr><td colspan="{{ inline_admin_form|cell_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr>
22 : {% endif %}
23 : <tr class="{% cycle "row1" "row2" %} {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}{% if forloop.last %} empty-form{% endif %}"
24 : id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}">
25 : <td class="original">
26 : {% if inline_admin_form.original or inline_admin_form.show_url %}<p>
27 : {% if inline_admin_form.original %} {{ inline_admin_form.original }} {% endif %}
28 : {% if inline_admin_form.show_url %}<a href="../../../r/{{ inline_admin_form.original_content_type_id }}/{{ inline_admin_form.original.id }}/">{% trans "View on site" %}</a>{% endif %}
29 : </p>{% endif %}
30 : {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %}
31 : {{ inline_admin_form.fk_field.field }}
32 : {% spaceless %}
33 : {% for fieldset in inline_admin_form %}
34 : {% for line in fieldset %}
35 : {% for field in line %}
36 : {% if field.is_hidden %} {{ field.field }} {% endif %}
37 : {% endfor %}
Traceback:
File "C:\Python\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "C:\Python\lib\site-packages\django\contrib\admin\options.py" in wrapper
307. return self.admin_site.admin_view(view)(*args, **kwargs)
File "C:\Python\lib\site-packages\django\utils\decorators.py" in _wrapped_view
93. response = view_func(request, *args, **kwargs)
File "C:\Python\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
79. response = view_func(request, *args, **kwargs)
File "C:\Python\lib\site-packages\django\contrib\admin\sites.py" in inner
197. return view(request, *args, **kwargs)
File "C:\Python\lib\site-packages\django\utils\decorators.py" in _wrapper
28. return bound_func(*args, **kwargs)
File "C:\Python\lib\site-packages\django\utils\decorators.py" in _wrapped_view
93. response = view_func(request, *args, **kwargs)
File "C:\Python\lib\site-packages\django\utils\decorators.py" in bound_func
24. return func(self, *args2, **kwargs2)
File "C:\Python\lib\site-packages\django\db\transaction.py" in inner
217. res = func(*args, **kwargs)
File "C:\Python\lib\site-packages\django\contrib\admin\options.py" in change_view
1030. return self.render_change_form(request, context, change=True, obj=obj)
File "C:\Python\lib\site-packages\django\contrib\admin\options.py" in render_change_form
708. ], context, context_instance=context_instance)
File "C:\Python\lib\site-packages\django\shortcuts\__init__.py" in render_to_response
20. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "C:\Python\lib\site-packages\django\template\loader.py" in render_to_string
188. return t.render(context_instance)
File "C:\Python\lib\site-packages\django\template\base.py" in render
123. return self._render(context)
File "C:\Python\lib\site-packages\django\test\utils.py" in instrumented_test_render
57. return self.nodelist.render(context)
File "C:\Python\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "C:\Python\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "C:\Python\lib\site-packages\django\template\loader_tags.py" in render
127. return compiled_parent._render(context)
File "C:\Python\lib\site-packages\django\test\utils.py" in instrumented_test_render
57. return self.nodelist.render(context)
File "C:\Python\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "C:\Python\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "C:\Python\lib\site-packages\django\template\loader_tags.py" in render
127. return compiled_parent._render(context)
File "C:\Python\lib\site-packages\django\test\utils.py" in instrumented_test_render
57. return self.nodelist.render(context)
File "C:\Python\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "C:\Python\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "C:\Python\lib\site-packages\django\template\loader_tags.py" in render
64. result = block.nodelist.render(context)
File "C:\Python\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "C:\Python\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "C:\Python\lib\site-packages\django\template\defaulttags.py" in render
227. nodelist.append(node.render(context))
File "C:\Python\lib\site-packages\django\template\loader_tags.py" in render
170. return self.render_template(template, context)
File "C:\Python\lib\site-packages\django\template\loader_tags.py" in render_template
141. output = template.render(context)
File "C:\Python\lib\site-packages\django\template\base.py" in render
123. return self._render(context)
File "C:\Python\lib\site-packages\django\test\utils.py" in instrumented_test_render
57. return self.nodelist.render(context)
File "C:\Python\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "C:\Python\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "C:\Python\lib\site-packages\django\template\defaulttags.py" in render
227. nodelist.append(node.render(context))
File "C:\Python\lib\site-packages\django\template\defaulttags.py" in render
311. return self.nodelist_true.render(context)
File "C:\Python\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "C:\Python\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "C:\Python\lib\site-packages\django\template\defaulttags.py" in render
311. return self.nodelist_true.render(context)
File "C:\Python\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "C:\Python\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "C:\Python\lib\site-packages\django\template\debug.py" in render
92. output = force_unicode(output)
File "C:\Python\lib\site-packages\django\utils\encoding.py" in force_unicode
71. s = unicode(s)
Exception Type: TemplateSyntaxError at /admin/image/celebrity/3/
Exception Value: Caught TypeError while rendering: coercing to Unicode: need string or buffer, ImageFieldFile found
을
MEDIA_ROOT = os.path.join(os.path.dirname(file), "media").replace("\\", "//"),
하지만 업로드조차도 작동하지 않습니다.
그래서 저는 정말로 우둔합니다. 어떤 도움을 높이 평가합니다
훌륭한 작품입니다. Thanx so much – Helmut
행복하게 도와 줬습니다. :) – Konstant