gpt4 book ai didi

django - 在 Django 中编辑对象时,未填充 ImageField

转载 作者:行者123 更新时间:2023-12-05 03:16:02 26 4
gpt4 key购买 nike

我正在尝试通过表单编辑现有对象。除了未使用当前值填充 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')

这是 View

@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)

这个对象确实附有缩略图,但是当我去编辑时,缩略图字段中没有显示任何内容

最佳答案

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

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

关于django - 在 Django 中编辑对象时,未填充 ImageField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2039749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com