带有模型 OneToOneField 的 django-jquery-file-upload
Posted
技术标签:
【中文标题】带有模型 OneToOneField 的 django-jquery-file-upload【英文标题】:django-jquery-file-upload with model OneToOneField 【发布时间】:2013-12-01 04:49:05 【问题描述】:我正在尝试使用https://github.com/sigurdga/django-jquery-file-upload 作为蓝图构建一个小型 django 图片网站:
我的模型如下:
class Picture(models.Model):
test = models.SlugField(max_length=50, blank=True)
slug = models.SlugField(max_length=50, blank=True)
user = models.OneToOneField(User)
file = models.ImageField(upload_to="pictures")
def save(self, *args, **kwargs):
self.slug = self.file.name
super(Picture, self).save(*args, **kwargs)
class PictureCreateView(CreateView):
model = Picture
def form_valid(self, form):
obj = form.save(commit=False)
obj.test = self.request.user
obj.user = self.request.user
obj.save()
self.object = obj
files = [serialize(self.object)]
data = 'files': files
response = JSONResponse(data, mimetype=response_mimetype(self.request))
response['Content-Disposition'] = 'inline; filename=files.json'
return response
我有一个 ajax 按钮,可以像 django-jquery-file-upload 一样发布图片,但它总是会出现“JSON.parse:意外字符”的错误
奇怪的是,如果我评论 ount:
Model
#user = models.OneToOneField(User)
View
#obj.user = self.request.user
该网站将正常运行。
有人能解释一下发生了什么吗?
杰克
【问题讨论】:
【参考方案1】:我相信错误发生在以下两行:
files = [serialize(self.object)]
response = JSONResponse(data, mimetype=response_mimetype(self.request))
你应该在你的控制台中测试这个函数:[serialize(self.object)]
【讨论】:
以上是关于带有模型 OneToOneField 的 django-jquery-file-upload的主要内容,如果未能解决你的问题,请参考以下文章
Django模型中的OneToOneField和ForeignKey有啥区别
如何模仿 django admin 的 OneToOneField 可选表单
我无法使用用户模型创建 OneToOneField 和 ForeignKey 字段?
DjangoRestFramework - 如何使用模型序列化程序访问 OneToOneField 反向关系的其他字段?