Ответ 1
-
Переменные списки, также известные как отношения "один-к-одному", обычно обрабатываются путем создания отдельной модели для многих и, в этой модели, использования 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, ]
Причина использования аргумента related_name в ForeignKey заключается в том, что ваши запросы будут более читабельными, например. в этом случае вы можете сделать что-то вроде этого в своем представлении:
property = Property.objects.get(pk=1)
image_list = property.images.all()
EDIT: забыл упомянуть, затем вы можете реализовать перетаскивание в админе с помощью Simon Willison snippet Заказные строки с использованием перетаскивания с помощью jQuery UI