【发布时间】:2018-09-16 05:17:20
【问题描述】:
我是 Django 的新手,实际上是网络开发。找了好久,还没找到答案。
在我的项目中,当用户提交表单请求时,它会搜索一些网站,如果找到特定的图片,它会下载图片并返回下载链接。
目前我有两个模型:
-
请求
class Request(models.Model): create_time = models.DateTimeField('create time', auto_now_add=True) user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET('unknown')) image_name = models.CharField(max_length=48) image = models.ForeignKey(Image, on_delete=models.SET('unknown')) -
图片
class Image(models.Model): add_time = models.DateTimeField('add time', auto_now_add=True) image_source = models.CharField(max_length=48) image_size = models.CharField(max_length=48)
只是想知道在提交请求时将 save() 保存到模型的最佳方式是什么。我正在考虑的方法是:
选项 A:
- 收到请求后,使用基本的 save() 到请求模型 信息 - 除了“图像 ID”(尚不可用),并设置 状态为“开始”
- 进行搜索,下载图片,然后 save() 到 图像模型 - 现在我有了“图像 ID”
- 使用“图像 ID”信息更新请求实例,并且 将状态更新为“成功”
选项 B:
请求时立即搜索并下载图片 收到,并保存()到图像模型 - 现在我有了“图像 ID”
Save() 到带有“图像 ID”的请求模型 - 这是一个新的 插入活动。
最好的方法是什么?或者还有其他更好的方法吗?
另外,在这种情况下使用 Django 的“事务”功能有什么建议吗?我不喜欢在我的小项目中使用它——只是不想让它变得太复杂。
【问题讨论】:
标签: django save multiple-tables