gpt4 book ai didi

django - 'QueryDict' 对象在 Django 中没有属性 'caption'

转载 作者:行者123 更新时间:2023-12-03 23:31:45 26 4
gpt4 key购买 nike

我编写了这个简单的图片上传应用程序,用户应该能够在其中为上传的图片添加标题。

意见是:

@login_required
def upload(request):
thisuser =User.objects.get(username = request.user.username)

args= {}

if request.method == 'POST':
picform = PicForm(request.POST, request.FILES)
if picform.is_valid():
newpic = UserPic(picfile = request.FILES['picfile'])
newpic = picform.save(commit=False)
newpic.user_id = request.user.id
newpic.caption = request.POST.caption # <--problematic line
newpic.save()
message = "file %s is uploaded" % newpic

args['pic'] = newpic.picfile
args['caption'] = newpic.caption

else:
picform = PicForm()

args.update(csrf(request))
args['picform'] = picform

return render_to_response('pics/upload.html',args,
context_instance=RequestContext(request))

模型是:
class UserPic(models.Model):
user = models.ForeignKey(User, unique=False)
picfile = ImageWithThumbsField(upload_to= get_uplaod_file_name,sizes=((200,200),))
caption = models.TextField(max_length=200 , blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)

和模板:
<div>   
Upload New picture

<form action="/pics/upload/" method="post" enctype="multipart/form-data">
{% csrf_token %}

<ul class="list-unstyled form-group">
{{picform.as_ul}}
</ul>
</p>
<p><input type="submit" value="Upload" /></p>
</form>
</div>

当我上传照片,填写标题字段并提交表单时,我得到:
'QueryDict' object has no attribute 'caption'

我尝试了不同的东西而不是 newpic.caption = request.POST.caption但没有一个工作。所以感谢你的帮助。

最佳答案

尝试这个

request.POST['caption']

或者
request.POST.get('caption', 'Default').

两者都从表单发布数据中获取标题值。通过为标题指定默认值,我认为后者只是一种更安全的方法。

关于django - 'QueryDict' 对象在 Django 中没有属性 'caption',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30035284/

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