gpt4 book ai didi

javascript - 模型没有属性_committed

转载 作者:行者123 更新时间:2023-11-29 22:24:54 24 4
gpt4 key购买 nike

我正在使用 jquery 表单插件 http://jquery.malsup.com/form/#getting-started通过ajax上传图片。当我尝试上传时,它显示模型没有属性 _committed这是我的 HTML:

<form id="uploadform" method="post" enctype="multipart/form-data" action="/cover/">{% csrf_token %}
{{ form.background }}
</form>

Javascript:

https://gist.github.com/2381406

模型.py:

class BackgroundModel(models.Model):
user = models.OneToOneField(User)
background = models.ImageField(upload_to='backgrounds')

class BackgroundModelForm(ModelForm):
class Meta:
model = BackgroundModel
exclude = ('user',)

Views.py:

@login_required
def backgroundview(request):
if request.is_ajax():
form = BackgroundModelForm(request.POST, request.FILES)
if form.is_valid():
try:
g = BackgroundModel.objects.get(user=request.user)
except BackgroundModel.DoesNotExist:
data = form.save(commit=False)
data.user = request.user
data.save()
else:
g.background = form
g.save()
HttpResponse(" ")
else:
form = BackgroundModelForm()
return render_to_response("cover.html", {'form': form}, context_instance=RequestContext(request))

网址.py:

url(r'^cover/$', 'cover.views.backgroundview'),

最佳答案

尝试在 else 分支中代替 g.background = form

try:
g = BackgroundModel.objects.get(user=request.user)
except BackgroundModel.DoesNotExist:
data = form.save(commit=False)
data.user = request.user
data.save()
else:
g.background = form.save(commit=False).background
g.save()
# or
BackgroundModelForm(request.POST, request.FILES, instance=g).save()

只能将接受类型的值分配给模型实例的相应字段。
models.ImageField 这里接受

  • 文件路径字符串
  • django.db.models.fields.files.ImageFieldFile
  • django.core.files.images.ImageFile

关于javascript - 模型没有属性_committed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150301/

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