Django模型中的非模型字段
我想有一个在Django模型,有多个图片与之相关。我正在评估可能的选择 使用Django模型中的非模型字段,django,django-models,Django,Django Models,我想有一个在Django模型,有多个图片与之相关。我正在评估可能的选择 使用models.ImageField(…)可以轻松完成一个模型的一张图片 但是,我想要一组图片。它可以只是路径,不一定是ImageField对象 问题是,如何在Django模型中创建该字段?我假设我需要创建一个不属于模型的字段。WhateverField。可能吗?我是否可以定义非模型字段,例如: class MyModel: name = models.CharField(max_length=10) pi
models.ImageField(…)
可以轻松完成一个模型的一张图片
但是,我想要一组图片。它可以只是路径,不一定是ImageField对象
问题是,如何在Django模型中创建该字段?我假设我需要创建一个不属于模型的字段。WhateverField
。可能吗?我是否可以定义非模型字段,例如:
class MyModel:
name = models.CharField(max_length=10)
picture_list = []
然后做:
def sample_add_picture_view(request):
picture = "sample.jpg"
model = MyModel.objects.get(id=sample_id)
model.picture_list.append(picture)
model.save()
return HttpResponseRedirect('index.html')
这能做到吗?如果不是,还有什么更好的解决方案?谢谢大家! 您需要创建两个单独的模型,并使用ForeignKey字段链接它们,如下所示:
class Item(models.Model):
name = models.CharField(max_length=255)
class ItemImage(models.Model):
image = models.ImageField(upload_to="item_images")
item = models.ForeignKey('Item', related_name="images")
可以创建一个自定义字段来存储多个项目,但这是一个非常糟糕的主意。您必须将数组序列化到数据库中,这使得维护非常困难。使用单独的模型意味着您可以存储额外的信息,如上传时间、图像标题等,而无需额外的努力。您需要创建两个单独的模型,并将它们与ForeignKey字段链接,如下所示:
class Item(models.Model):
name = models.CharField(max_length=255)
class ItemImage(models.Model):
image = models.ImageField(upload_to="item_images")
item = models.ForeignKey('Item', related_name="images")
可以创建一个自定义字段来存储多个项目,但这是一个非常糟糕的主意。您必须将数组序列化到数据库中,这使得维护非常困难。使用单独的模型意味着您可以存储额外的信息,如上传时间、图像标题等,而无需额外的努力