每个型号有多个图像
我正在Django写一个简单的房地产上市应用程序。 每个属性都需要有可变数量的图像。 图像需要有可编辑的顺序。 我需要使pipe理员用户certificate。
所以说,我有什么select?
- 
有没有我不知道的ImageList字段? 
- 
是否有像 django.contrib.comments这样的应用程序,为我做的工作?
- 
如果我必须自己写,那么我怎样才能使pipe理方面得体呢? 我想像的东西比ImageField提供的东西要轻松得多,有些拖放可以重新sorting。 但我是一个完整的写作pipe理页面=( 
- 
variables列表(也称为多对一关系)通常通过为许多模型创build单独的模型来处理,并且在该模型中使用ForeignKey作为“one”。 
- 
在django.contrib中没有像这样的应用程序,但有几个外部项目可以使用,例如django-photologue甚至有一些支持查看pipe理中的图像。 
- 
pipe理网站不能做“用户certificate”,只能由受信任的用户使用。 鉴于此,使您的pipe理网站体面的方法是为您的财产定义ModelAdmin,然后内联照片( 内联文档 )。 
所以,给你一些快速的草稿,一切都会看起来像这样:
 # models.py class Property(models.Model): address = models.TextField() ... class PropertyImage(models.Model): property = models.ForeignKey(Property, related_name='images') image = models.ImageField() 
和:
 # admin.py class PropertyImageInline(admin.TabularInline): model = PropertyImage extra = 3 class PropertyAdmin(admin.ModelAdmin): inlines = [ PropertyImageInline, ] 
在ForeignKey上使用related_name参数的原因是让你的查询更具可读性,例如,在这种情况下,你可以在你的视图中做这样的事情:
 property = Property.objects.get(pk=1) image_list = property.images.all() 
编辑:忘了提及,然后你可以实现在pipe理使用西蒙·威利森的片段的拖放式订购使用jQuery UI拖放的Orderable内联
将一个具有ForeignKey的图像模型写入到您的Property模型中。 很可能,您将拥有属于图片的其他字段,而不是属性。
我目前正在做同样的事情,而且我面临同样的问题。
经过一段时间的研究,我决定使用django-imaging 。 它具有良好的Ajaxfunction,可以在模型插入页面的同一页面上传图像,并且可以编辑。 它唯一缺乏的是对非JPEG扩展的支持。 我希望在几天之内我会有解决方法。 🙂