2

我已经坚持了5个小时,无法解决!我剪掉了一些脂肪。有谁知道为什么我的设计一开始会保存,但不会使用文件主键更新?

如果我放置:design.files_id = 12在第一个之前design.save(),它将保存该整数。但是如何让这个表格重新保存?我什至尝试使用新的主键重新选择模型,但design = store_models.Design.objects.get(pk = design.pk)没有运气。

    form = SubmitDesignForm(request.POST, request.FILES)

    if form.is_valid():

        design = form.save(commit = False)
        design.user = request.user
        design.save()
        form.save_m2m()

        # Files
        posted_files = request.FILES.getlist('file')
        if posted_files:

            files = Files()
            files.save()
            print files.pk # Returns a Intenger

            design.files_id = files.pk
            design.save()
            # Always leaves the thing 

注意:代码已成功在数据库中为文件创建数据并上传它们——我只是无法获取要引用的主键。

4

2 回答 2

2

这是多么令人沮丧..这是我做错的:

设计模型.py

def save(self):
    if self.download_price is None:
        self.download_price = '0.00'
        super(Design, self).save()

保存具有下载价格的项目时没有调用 Super,因此修复了它:

def save(self):
    if self.download_price is None:
        self.download_price = '0.00'

    super(Design, self).save()

对不起,我忘了包括这个,直到我坐在马桶上才意识到这一点。

于 2013-08-14T19:52:28.230 回答
1

你不需要设置FK对象,而不是键吗?我不认为你直接插入 FK。尝试这样的事情(不是 100% 的语法):

design.files = Files.objects.get(pk=files.pk)
design.save()

类似的东西。当然,您已经有一个名为的变量,files因此您不需要执行 get。您应该可以从命令行尝试它。

于 2013-08-14T19:57:15.500 回答