• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mikroblog w Django, proszę o code review

0 głosów
309 wizyt
pytanie zadane 4 czerwca 2020 w Python przez szafran98 Początkujący (460 p.)

Hej, od jakiegoś czasu uczę się Django i postanowiłem, że napiszę aplikację do mikroblogowania. Mam już w miarę działającą wersję, ale jest to w zasadzie mój pierwszy projekt w Django, nie licząc przepisywania czegoś z tutoriala, więc bardzo serdecznie prosiłbym, żeby ktoś zaznajomiony z tematem rzucił okiem, czy jest to jakoś akceptowalnie zrobione, a nie przykładowo łamię wzorzec projektowy. Każdą uwagę przyjmę oczywiście z otwartymi rękoma, jeżeli jest potrzebna wersja live to mogę postawić i wrzucić link. Kod: https://github.com/szafran98/mikroblog_django

1 odpowiedź

+1 głos
odpowiedź 4 czerwca 2020 przez adrian17 Mentor (354,880 p.)
wybrane 4 czerwca 2020 przez szafran98
 
Najlepsza

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`.

komentarz 4 czerwca 2020 przez szafran98 Początkujący (460 p.)
Dzięki serdeczne, teraz sprawdzam i faktycznie celne uwagi, kłaniam się.

Podobne pytania

0 głosów
1 odpowiedź 755 wizyt
pytanie zadane 18 sierpnia 2020 w Python przez Nieprofesjonalny Użytkownik (890 p.)
0 głosów
1 odpowiedź 298 wizyt
0 głosów
1 odpowiedź 792 wizyt
pytanie zadane 21 lipca 2022 w JavaScript przez mj23 Nowicjusz (150 p.)

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,137 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2658p. - dia-Chann
  2. 2630p. - DziarnowskiJ
  3. 2478p. - rucin93
  4. 2361p. - Łukasz Piwowar
  5. 2340p. - CC PL
  6. 2317p. - raydeal
  7. 2300p. - Adrian Wieprzkowicz
  8. 2117p. - Łukasz Eckert
  9. 2082p. - Michal Drewniak
  10. 1957p. - Maurycy W
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1494p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...