Отвечая на второй пункт:
-
"Сайт, который показывает погоду"
-
"зашёл, увидел список текущих городов, нажал добавить, вписал название, добавил."
А если он добавит город, который не существует, то как тогда быть?
Вообще для этой задачи нужна будет модель с городами, которые уже не пользователь должен добавлять, а администратор сайта/либо напрямую в через INSERT. От чего и вопросы на счёт такой реализации.
И отвечая на первый пункт:
Для списка любимых городов нужно будет создать связь многие ко многим между городом и пользователем.
Здесь есть два варианта:
1. Использовать ManyToMany в Django (
https://docs.djangoproject.com/en/4.0/topics/db/ex...)
2. Создать смежную таблицу, между двумя таблицами