Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
def comment_absolute_url(request, pid):
"""
This is a function which return paginated absolute URL for comment.
It replaces default comment.get_absolute_url()
"""
comment = Comment.objects.get(id=pid)
pagination_interval = 25 # will be defined by user settings in future
all_comments = Comment.objects.filter(content_type=comment.content_type, object_pk=comment.object_pk,
is_public=True, is_removed=False)
# I will post it to govnokod.ru, okay? ;)
dummy_counter = int(0)
needed_page = int(dummy_counter / pagination_interval) + 1
for dummy_comment in all_comments:
dummy_counter = dummy_counter + 1
if dummy_comment.id == comment.id:
needed_page = int(dummy_counter / pagination_interval) + 1
# making an URL
if comment.content_type.name == "forum post":
item = ForumPost.objects.get(id=comment.object_pk)
url_prefix = "forum/%s/%i" % (item.forum.url, item.id)
elif comment.content_type.name == "new":
item = New.objects.get(id=comment.object_pk)
url_prefix = "news/%i" % item.id
fixed_url = "/%s/?page=%i#%i" % (url_prefix, needed_page, int(pid))
return fixed_url
В Django есть достаточно няшный comments framework. А ещё там есть такой же няшный paginator. А вот вместе их подружить разработчики django почему-то постеснялись, и поэтому comment.get_absolute_url() нихрена не знает о существовании paginator-а. Эта функция призвана помочь безумному автору сослаться на коммент.
Комментарии (0) RSS