The treaties conflict . Early ones say it ' s theirs , later ones say it ' s not . <| sep |> Highly disagree . There is no real America . NYC is going to be different from Bumfuck , Idaho , but they ' re both still authentically American in their own way . <| sep |> Good luck to our west coast brethren that are about to venture into stores within the next hour ! I hope you don ' t show up on <| sep |> Sure . I ' m talking about perceptions , though , and it ' s certainly true that suicide bombing is a tainted tactic . <| sep |> 1 . Update . gitignore to ignore pycache and . pyc . Better yet , copy this file from GitHub getabsoluteurl usually returns a link specific to a model instance . You are returning a constant link for every instance . You might as well not use getabsoluteurl . 3 . Why is Series . name limited to 40 characters ? That limit seems rather arbitrary . I find 255 characters to be sufficient for most purposes . 4 . scraperforms . py is empty . Get rid of it . 5 . scraperapps . py isn ' t necessary given that you are setting the app name to be the same as Django would set it automatically . 6 . Why is the model named Serie instead of Series ? If you ' re worried about plurality , you can set the plural name . See options . 7 . Either add tests to scrapertests . py or get rid of it . You should have tests . 8 . Your view classesall classesshould use camelCase e . g . UpdateSeries rather than UpdateSeries . I didn ' t do a deep dive but , I hope the above helps improve your code . A larger improvement use an API to get your data instead of a scraper . This might be an option