Frage

Ich baue eine django-App, die eine Bildgalerie hat, und der Kunde darauf besteht, die Bilder in einer bestimmten Reihenfolge angezeigt werden. Ich benutze das Admin-Interface die Bilder und bearbeiten ihre Eigenschaften zu laden, und ich habe eine ImageFile Klasse in meinem Modell, dass im Grunde wie folgt aussieht:

class ImageFile(models.Model):
    """represents an image file"""

    # the image description
    description = models.CharField(max_length=45)

    # the actual image
    image = models.ImageFile(upload_to='images') 

    # running number representing the order on the page
    order = models.IntegerField()

    def __unicode__(self):
          return "%s" % (self.description)

    class Meta:
        db_table = 'images'

Ich bin mit dem IntegerField ‚bestellt‘ laufende Nummer zu haben, die die Sortierung steuern werden. Ich dachte, es hat ein intelligentere / besserer Weg, um dies (ein anderes Modell?) Zu tun und auch leicht über das Admin-Interface steuert Lage sein.

War es hilfreich?

Lösung

ich suppouse würden Sie Möglichkeit zu sortieren Bilder Benutzer mögen, (sowieso, wenn Sie sortieren wollen, dass es über Zeit Add, beste Weg ist es, um von id), so, wenn es Modell wie Galerie (der Bilder), die Sie vielleicht Speicher von Tupel von IDs von Bildern aus der Galerie soll (in DB als Textobjekt). Nach dem Lesen warf es auf Tupel, und Sie haben, um zu erwarten. Hoffe, dass ich Hilfe.

Andere Tipps

, wenn die Reihenfolge der Bilder ist die Reihenfolge, dass sie hochgeladen werden Sie einen Zeitstempel verwenden, könnten sie zu bestellen.

I verwendete die gleiche Methode (mit integer „Ordnung“ Feld in dem Modell), um die Reihenfolge zu definieren. Allerdings, besonders angefertigt ich den Admin ziehen zu lassen und die Bilder gehören in ein Album fallen, um die Reihenfolge zu definieren. Wenn die Admin-Treffer-Taste „speichern“, wird die Bestellung automatisch auf der Grundlage nach Drag-and-Drop auf dem aktuellen Auftrag berechnet. Alle Daten werden für das Speichern der DB an den Server gesendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top