【发布时间】:2020-11-23 11:09:50
【问题描述】:
我的模型结构如下:
class Uploadable(models.Model):
file = models.FileField('Datei', upload_to=upload_location, storage=PRIVATE_FILE_STORAGE)
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
class Inspection(models.Model):
...
picture_before = GenericRelation(Uploadable)
picture_after = GenericRelation(Uploadable)
我想知道如何判断一个文件上传为picture_before,而另一个文件上传为picture_after。 Uploadable 不包含任何有关它的信息。
谷歌搜索了一段时间,但没有找到合适的解决方案。
感谢支持!
【问题讨论】:
-
看看使用reverse relations 使用
related_query_name。它不会告诉您 Uploaded 实例是 before 还是 after,但它允许您使用反向关系从 Uploaded 实例中获取 before 或 after。 -
我这样做了,但是哪张图片是“之前”,哪张是“之后”图片的信息在哪里?它需要保存在数据库中的某个地方,对吧?
-
假设您上传的实例是
pic和related_query_name="before_pics"在picture_before关系上。查询pic.before_pics将返回之前图片的查询集。 -
但是Uploadable 1 是“之前”的数据库中的信息在哪里? Uploadable 类只有三个记录,与此相关的检查类为零。
标签: django generic-foreign-key