带有模型 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 反向关系的其他字段?

十一 .Django 一对一表OneToOneField (ORM)

Django模型中的OneToOneField和ForeignKey有什么区别?