Django - Übergabe zusätzlicher Argumente an die aufrufbare Funktion upload_to

Ich weiß, dass Sie den upload_to-Parameter verwenden können, um eine aufrufbare Funktion zum dynamischen Ändern eines FileFied / ImageField usw. in einem Django-Modell zu übergeben.

Der von upload_to aufgerufenen Funktion werden 2 Variablen übergeben, die Instanz der nicht in der Datenbank gespeicherten Datei (Instanz) und der Dateiname dieser Instanz (Dateiname).

Wenn ich ein ImageField in einem Modell zusammen mit anderen Feldern (Zeichen usw.) verwende, können die Werte aus diesen Feldern in dieselbe aufrufbare Funktion übernommen werden.

zum Beispiel.

class Badge(models.Model):

  def format_badge_name(instance, filename):
    _filetype = os.path.splitext(filename)[1]
    _category = 'foo'
    _name = os.path.splitext(filename)[0]
    _filename = "%s-%s-%s%s" % (_category, _name, 'private', _filetype)

    return "badges/%s" % _filename

  name = models.CharField(max_length=16, help_text="Name for Badge")
  file = models.ImageField(upload_to=format_badge_name)

Ist es möglich, die Werte von name (self.name?) In format_badge_name zu übergeben?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage