我被困在这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
注意:代码在DB for Files中成功创建数据并上传它们 - 我无法获得要引用的主键。
答案 0 :(得分:1)
这是多么令人沮丧..这就是我做错了:
设计models.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()
对不起,我忘了把它包括在内,直到我坐在马桶上,我才意识到这一点。
答案 1 :(得分:1)
您是否需要设置FK对象而不是密钥?我不认为你直接插入FK。 尝试这样的事情(不是100%的语法):
design.files = Files.objects.get(pk=files.pk)
design.save()
这样的事情。
当然,你已经有一个名为files
的变量,所以你不需要做get。
您应该可以从命令行尝试它。