首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在django中编辑对象时,不会填充ImageField

在django中编辑对象时,不会填充ImageField
EN

Stack Overflow用户
提问于 2010-01-11 11:29:00
回答 1查看 1.8K关注 0票数 3

我正在尝试通过表单编辑现有对象。除了ImageField没有使用当前值填充之外,其他一切都运行正常。

这是一个模型:

class Post(models.Model):
    author = models.ForeignKey(User, editable=False)
    slug = models.SlugField(max_length = 110, editable=False)
    title = models.CharField(verbose_name='Blog Title', max_length=40, blank=False)
    body = models.TextField(verbose_name='Body')
    thumbnail = models.ImageField(upload_to = 'posts/%Y/%m')

这是视图

@login_required
def edit_profile(request, form_class=UserProfileForm, success_url=None, template_name='profiles/edit_profile.html', extra_context=None):

try:
    profile_obj = request.user.get_profile()
except ObjectDoesNotExist:
    return HttpResponseRedirect(reverse('profiles_create_profile'))

if success_url is None:
    success_url = reverse('profiles_profile_detail',
                          kwargs={ 'username': request.user.username })
if form_class is None:
    form_class = utils.get_profile_form()
if request.method == 'POST':
    form = form_class(data=request.POST, files=request.FILES, instance=profile_obj)
    if form.is_valid():
        form.save()
        return HttpResponseRedirect(success_url)
else:
    form = form_class(instance=profile_obj)

if extra_context is None:
    extra_context = {}
context = RequestContext(request)
for key, value in extra_context.items():
    context[key] = callable(value) and value() or value

return render_to_response(template_name,
                          { 'form': form,
                            'profile': profile_obj, },
                          context_instance=context)

此对象确实附加了一个缩略图,但当我转到编辑时,缩略图字段中没有显示任何内容

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-11 11:40:39

我相信答案在于这样一个事实:当文件输入字段显示一个值时,它会显示用户计算机上所选文件的本地路径。该值不会保存在Django anywhere中,因此Django在编辑时不能也不会在表单中显示该值。

您需要做的是在模板中单独打印每个字段,而不是将表单作为一个整体打印。然后,使用缩略图字段,将当前选择的缩略图显示为页面上的实际图像,并使用文件输入字段允许用户上传新图像。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2039749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档