I'm writing Django app, I want to create different directory for every different Trip.
This code doesn't work (using method):
class TripPhoto(models.Model):
def __str__(self):
return self.trip_id.title
trip_id = models.ForeignKey(Trip, on_delete=models.CASCADE)
def get_trip_title(self):
return self.trip_id.title
photo = models.ImageField(upload_to="reservations/" + get_trip_title() + "/") # NEED FIX
photo = models.ImageField(upload_to="reservations/" + get_trip_title() + "/") # NEED FIX TypeError: get_trip_title() missing 1 required positional argument: 'self'
This code doesn't work too (using attribute):
class TripPhoto(models.Model):
def __str__(self):
return self.trip_id.title
trip_id = models.ForeignKey(Trip, on_delete=models.CASCADE)
photo = models.ImageField(upload_to="reservations/" + str(trip_id.title) + "/") # NEED FIX
photo = models.ImageField(upload_to="reservations/" + str(trip_id.title) + "/") # NEED FIX AttributeError: 'ForeignKey' object has no attribute 'title'
I know that I can use self.trip_id.title, because I used it in another part of the code.
Is there any way to use self (instance reference?) outside of class method?