Списки переменных, также известные как отношения многие-к-одному, обычно обрабатываются путем создания отдельной модели для множества и, в этой модели, использования ForeignKey со значением «один».
В django.contrib нет такого приложения, но есть несколько внешних проектов, которые вы можете использовать, например, django-photologue , который даже имеет некоторую поддержку для просмотра изображений в админке.
Административный сайт не может быть «проверен пользователем», его должны использовать только доверенные пользователи. Учитывая это, способ сделать ваш админ-сайт приличным - определить 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, ]
admin.site.register(Property, PropertyAdmin)
Причина использования аргумента related_name в ForeignKey заключается в том, что ваши запросы будут более читабельными, например, в этом случае вы можете сделать что-то подобное на ваш взгляд:
property = Property.objects.get(pk=1)
image_list = property.images.all()
РЕДАКТИРОВАТЬ: забыл упомянуть, что вы можете затем внедрить порядок перетаскивания в администраторе, используя фрагмент Саймона Уиллисона Встраиваемые строки, используя перетаскивание с jQuery UI