问题
I am building blog website and trying to put next
and prev
buttons for next post and previous post respectively.
In the official document, it explains get_next_by_FOO(**kwargs)
and where FOO is the name of the field. This returns the next and previous object with respect to the date field
.
So my models.py and views.py are following.
models.py
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
class Meta:
ordering = ["-timestamp", "-updated"]
views.py
def post_detail(request, id=None):
instance = get_object_or_404(Post, id=id)
the_next = instance.get_next_by_title()
context ={
"title": instance.title,
"instance": instance,
"the_next" : the_next,
}
return render(request, "post_detail.html", context)
Do I misunderstand its concept?? If I do, how can I deal with it? Thanks in advance!
回答1:
get_next_by_FOO
works on the date field, think of it like "get me the next record ordered by the date (or datetime) field FOO".
So FOO is the name of a date or datetime field.
In your model, you can say "get me the next record based on timestamp", and this would be get_next_by_timestamp()
or "get me the next record based on the updated date", and this would be get_next_by_updated()
.
来源:https://stackoverflow.com/questions/39070840/how-can-i-use-get-next-by-foo-in-django