1👍
✅
Your ManyToMany
field is a relationship that returns a QuerySet
of multiple objects, so you need to choose one object from that queryset to use to construct your URL. You can do this many ways.
For example, if your Subject model has a date field, you could return the latest
Subject:
return "/subject/%s/graphs/%s/" % (self.subject.all().latest("my_date_field"), self.slug)
alternatively, you could just try and get the first Subject of the queryset:
return "/subject/%s/graphs/%s/" % (self.subject.all()[0], self.slug)
Have a look at the QuerySet API to see what might be most appropriate for you.
You should also remember that your get_absolute_url
method will likely throw an exception if there are no Subject objects associated with your model so you should do:
def get_absolute_url(self):
try:
return "/subject..."
except:
return "/another-url/"
Source:stackexchange.com