【发布时间】:2013-07-12 08:05:00
【问题描述】:
在 django 应用程序中,我将在我的 models.py 中拥有一个图像数据库,所有图像都归类在 image 类下。不幸的是,其中一些图像有可能彼此重复,我想编写一个应用程序,(部分)允许我标记这些重复的图像。作为这样的数据库设置新手,在我的models.py 中实现它的最佳方法是什么?
我的models.py如下:
class duplicate(models.Model):
#some kind of code goes here?
#perhaps...
models.ImageField(upload_to='directory/') #not uploading a new image here- just want to link it to a database full of images somehow?
class image(models.Model):
image = models.ImageField(upload_to='directory/')
duplicate = models.ManyToManyField(duplicate, null=True) #is this the correct way to do this?
【问题讨论】:
-
你可以破解 Model.save/delete 方法将图像名称和校验和存储在数据库中,然后你可以有一个方法来计算具有相同校验和的图像的数量。
-
并非所有图像都会被完全一样地裁剪,但我真的很喜欢我们要去的地方。就我而言,我有一个充满图像的数据库,这些图像可能彼此重复(但不是相同的扫描,因此它们的校验和会有所不同)。我需要一种方式来表达,“这张图片看起来和我几个小时前看到的那张真的很相似。我希望它们被链接起来,并包含一个原因的描述。”它不一定是自动的,只是我说“我从前上传的这两张图片是相关的”的一种方式。多张图片(
class image's)的多对多关系。 -
没错。结果,我想要做的就是在我的数据库中标记两个图像,已经在数据库中,是彼此的重复。用户将手动将图像标记为彼此的副本。我只是不知道如何在我的模型中定义多对多关系。计算机不会发现重复项,用户会。
-
查看有关如何创建递归关系的更新。
标签: python mysql django python-2.7 django-models