Django - przekazywanie dodatkowych argumentów do funkcji wywoływania upload_to

Wiem, że możesz użyć parametru upload_to, aby przekazać funkcję wywoływalną, aby dynamicznie zmienić FileFied / ImageField itp. W modelu Django.

Funkcja wywoływana przez upload_to przekazuje 2 zmienne, instancję pliku nie zapisanego w bazie danych (instancję) i nazwę pliku wspomnianej instancji (nazwa pliku).

Jeśli używam ImageField w modelu wraz z innymi polami (Char itp.), Czy możliwe jest uzyskanie wartości z tych pól do tej samej funkcji wywoływalnej.

na przykład.

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)

Czy możliwe jest przekazanie wartości z name (self.name?) Do formatu_badge_name?

questionAnswers(1)

yourAnswerToTheQuestion