我正在Django編寫一個簡單的房地產上市應用程序。每個屬性都需要有可變數量的圖像。圖像需要有可編輯的訂單。我需要讓管理員用戶證明。每個模型的多個圖像
這樣說,我有什麼選擇?
是否存在我不知道的ImageList字段?
有沒有像我這樣的工作爲
django.contrib.comments
的應用程序?如果我必須親自寫這篇文章,我將如何去做管理方面的體面?我想象的東西比ImageField提供的東西要輕鬆得多,而且有些拖放可以重新排序。但我是一個完整的clutz在編寫管理頁面=(
我正在Django編寫一個簡單的房地產上市應用程序。每個屬性都需要有可變數量的圖像。圖像需要有可編輯的訂單。我需要讓管理員用戶證明。每個模型的多個圖像
這樣說,我有什麼選擇?
是否存在我不知道的ImageList字段?
有沒有像我這樣的工作爲django.contrib.comments
的應用程序?
如果我必須親自寫這篇文章,我將如何去做管理方面的體面?我想象的東西比ImageField提供的東西要輕鬆得多,而且有些拖放可以重新排序。但我是一個完整的clutz在編寫管理頁面=(
變量列表,也被稱爲多到一的關係,通常是通過使一個單獨的模型用於許多和,在該模型中,使用一個ForeignKey「一個」處理。
在django.contrib中沒有這樣的應用程序,但有se您可以使用的veral外部項目,例如django-photologue甚至有一些支持查看管理員中的圖像。
管理網站不能做「用戶證明」,它應該只能被信任的用戶使用。鑑於此,使您的管理網站體面的方法是爲您的物業定義ModelAdmin,然後將照片內嵌(inline documentation)。
所以,給你一些快速的草稿,一切都將是這個樣子:
# 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)
之所以使用在ForeignKey的的related_name說法是所以你的查詢將更具可讀性,例如在這種情況下,你可以做這樣的事情在你看來:
property = Property.objects.get(pk=1)
image_list = property.images.all()
編輯:忘了提,你就可以實現使用西蒙·威利森的片段Orderable inlines using drag and drop with jQuery UI
寫有一個ForeignKey到您的屬性模型的圖像模型。很可能,你就會有屬於其他一些領域的形象和不到屬性。
我在管理員拖和拖放排序米現在做同樣的事情,我面臨同樣的問題。
經過一段時間的研究,我決定使用django-imaging。它具有很好的Ajax功能,圖像可以在模型插入頁面的相同頁面上傳,並且可以編輯。它唯一缺乏的是對非JPEG擴展的支持。我希望在幾天內我會有解決方法。 :)
PropertyImage模型應該包含一個用於排序的字段。 – akaihola 2009-02-12 10:11:47