Kilka losowych wybiórczych spostrzeżeń:
- masz trochę duplikacji roboty związanej z modelami. Na przykład:
Post.update_post_content(id, new_content_post)
Ale wyżej masz już zmienną edited_post, to czemu nie po prostu nie zmodyfikować tego obiektu?
Podobnie:
user_comments_count = Comment.get_user_comment_count(username)
W środku robisz filtrowanie z joinem, żeby przefiltrować po username. Ale znowu, po co, skoro masz już pod ręką obiekt z tym userem?
Mam wrażenie że jest tego więcej, ale nie będę więcej wymieniał.
Dalej:
def delete_post(request, id):
post_to_delete = Post.objects.get(id=id)
if request.method == 'DELETE':
Jest do tego dekorator `require_http_methods`.
let timeToChange = element.innerHTML;
let toNumber = parseInt(timeToChange);
element.innerHTML = time2TimeAgo(toNumber);
Jeśli nie musisz koniecznie operować na surowym HTMLu, unikaj innerHTML. textContent powinien tutaj wystarczyć, nie?
style="margin: auto; max-width: 600px; margin-bottom: 30px;
Inline style są be ;)
Ogólna uwaga:
def edit_post(request, id):
edited_post = Post.objects.get(id=id)
post_form = AddPostForm(request.POST or None, instance=request.user)
if request.POST:
Poczytaj o "klasowych" widokach w Django. Pozwalają uniknąć sporo boilerplate'u takiego jak powyższe klasyczne tworzenia Forma i `if request.POST`.