From ba41e79b981300aae58d62bb497ab2fd3b29fb7c Mon Sep 17 00:00:00 2001 From: Sayyid Hamid Mahdavi Date: Sun, 15 Nov 2020 13:23:22 +0330 Subject: [PATCH] provice and city and address in accounts --- apps/users/cities.py | 1250 +++++++++++++++++ .../migrations/0003_auto_20201115_0948.py | 33 + apps/users/models.py | 23 +- apps/users/serializers.py | 15 +- apps/users/views.py | 2 +- 5 files changed, 1304 insertions(+), 19 deletions(-) create mode 100644 apps/users/cities.py create mode 100644 apps/users/migrations/0003_auto_20201115_0948.py diff --git a/apps/users/cities.py b/apps/users/cities.py new file mode 100644 index 0000000..ad6c6f0 --- /dev/null +++ b/apps/users/cities.py @@ -0,0 +1,1250 @@ +# from pprint import pprint +# a = 'https://en.wikipedia.org/wiki/List_of_cities_in_Iran_by_province' + +provinces = {'alborz': ['karaj', + 'fardis', + 'kamal shahr', + 'nazarabad', + 'mohammadshahr', + 'hashtgerd', + 'mahdasht', + 'meshkin dasht', + 'chaharbagh', + 'shahr-e jadid-e hashtgerd', + 'eshtehard', + 'garmdarreh', + 'golsar', + 'kuhsar', + 'taleqan', + 'asara', + 'tankaman'], + 'ardabil': ['ardabil', + 'parsabad', + 'meshginshahr', + 'khalkhal', + 'germi', + 'bileh savar', + 'namin', + 'jafarabad', + 'kivi', + 'anbaran', + 'abi beyglu', + 'nir', + 'hashatjin', + 'sareyn', + 'aslan duz', + 'eslamabad-e qadim', + 'tazeh kand-e qadim', + 'qasabeh', + 'lahrud', + 'hir', + 'kolowr', + 'razey', + 'tazeh kand-e angut', + 'fakhrabad', + 'kuraim', + 'moradlu'], + 'bushehr': ['bushehr', + 'borazjan', + 'bandar ganaveh', + 'khormoj', + 'bandar kangan', + 'jam', + 'bandar deylam', + 'bandar-e deyr', + 'ali shahr', + 'choghadak', + 'ab pakhsh', + 'ahram', + 'vahdatiyeh', + 'kaki', + 'bank', + 'nakhl taqi', + 'asaluyeh', + 'kharg', + 'dalaki', + 'sadabad', + 'shabankareh', + 'abdan', + 'bandar rig', + 'bardestan', + 'bord khun', + 'delvar', + 'bandar siraf', + 'dowrahak', + 'baduleh', + 'tang-e eram', + 'abad', + 'anarestan', + 'shonbeh', + 'imam hassan', + 'kalameh', + 'riz', + 'bushkan'], + 'chaharmahal and bakhtiari': ['shahr-e kord', + 'borujen', + 'farsan', + 'farrokh shahr', + 'lordegan', + 'hafshejan', + 'saman', + 'junqan', + 'kian', + 'faradonbeh', + 'ben', + 'sureshjan', + 'babaheydar', + 'boldaji', + 'ardal', + 'naqneh', + 'pardanjan', + 'shalamzar', + 'gahru', + 'gujan', + 'sefiddasht', + 'gandoman', + 'taqanak', + 'sardasht', + 'sudjan', + 'naghan', + 'dastana', + 'cholicheh', + 'vardanjan', + 'kaj', + 'dashtak', + 'nafech', + 'mal-e khalifeh', + 'chelgard', + 'aluni', + 'haruni', + 'sar khun', + 'bazoft', + 'manj-e nesa', + 'samsami'], + 'east azerbaijan': ['tabriz', + 'maragheh', + 'marand', + 'ahar', + 'mianeh', + 'bonab', + 'sahand', + 'sarab', + 'azarshahr', + 'hadishahr', + 'ajab shir', + 'sardrud', + 'malekan', + 'shabestar', + 'bostanabad', + 'hashtrud', + 'osku', + 'ilkhchi', + 'mamqan', + 'khosrowshah', + 'basmenj', + 'gugan', + 'heris', + 'yamchi', + 'kaleybar', + 'shendabad', + 'sufian', + 'jolfa', + 'koshksaray', + 'tasuj', + 'torkamanchay', + 'kolvanaq', + 'leylan', + 'sis', + 'bakhshayesh', + 'qarah aghaj', + 'mehraban', + 'teymurlu', + 'varzaqan', + 'zarnaq', + 'hurand', + 'khajeh', + 'benab e marand', + 'sharabian', + 'vayqan', + 'mobarak shahr', + 'sharafkhaneh', + 'kuzeh kanan', + 'achachi', + 'duzduzan', + 'kharvana', + 'khamaneh', + 'tekmeh dash', + 'aqkand', + 'abish ahmad', + 'zonuz', + 'tark', + 'khomarlu', + 'kharaju', + 'siah rud', + 'nazarkahrizi', + 'jowan qaleh', + 'malek kian', + 'shahriar'], + 'fars': ['shiraz', + 'marvdasht', + 'jahrom', + 'fasa', + 'kazerun', + 'sadra', + 'darab', + 'firuzabad', + 'lar', + 'abadeh', + 'nurabad', + 'neyriz', + 'eqlid', + 'estahban', + 'gerash', + 'zarqan', + 'kavar', + 'lamerd', + 'safashahr', + 'qaemiyeh', + 'hajjiabad', + 'farashband', + 'qir', + 'evaz', + 'khonj', + 'kharameh', + 'sarvestan', + 'arsanjan', + 'saadat shahr', + 'qaderabad', + 'ardakan', + 'dobiran', + 'jannat shahr', + 'galleh dar', + 'soghad', + 'meymand', + 'darian', + 'zahedshahr', + 'khesht', + 'surian', + 'banaruiyeh', + 'masiri', + 'lapui', + 'karzin', + 'seyyedan', + 'eshkanan', + 'shahr-e pir', + 'beyram', + 'bahman', + 'qotbabad', + 'juyom', + 'abadeh tashk', + 'khur', + 'mohr', + 'beyza', + 'latifi', + 'bab anar', + 'qarah bolagh', + 'ij', + 'khumeh zar', + 'konartakhteh', + 'miyanshahr', + 'izadkhast', + 'emam shahr', + 'runiz', + 'mobarakabad', + 'sedeh', + 'sheshdeh', + 'khavaran', + 'meshkan', + 'varavi', + 'emad deh', + 'fadami', + 'alamarvdasht', + 'khaneh zenyan', + 'baladeh', + 'nujin', + 'korehi', + 'dezhkord', + 'surmaq', + 'mazayjan', + 'dehram', + 'kuhenjan', + 'khuzi', + 'kupon', + 'now bandegan', + 'ahel', + 'hesami', + 'khaniman', + 'do borji', + 'qatruyeh', + 'nowdan', + 'kamfiruz', + 'hamashahr', + 'efzar', + 'asir', + 'ramjerd', + 'hasanabad', + 'soltan shahr', + 'madar-e soleyman', + 'baba monir', + 'duzeh', + 'arad', + 'fishvar'], + 'gilan': ['rasht', + 'bandar-e anzali', + 'lahijan', + 'langarud', + 'hashtpar', + 'astara', + "sowme'eh sara", + 'astaneh-ye ashrafiyeh', + 'rudsar', + 'fuman', + 'khomam', + 'siahkal', + 'rezvanshahr', + 'manjil', + 'amlash', + 'kiashahr', + 'rostamabad', + 'lowshan', + 'rudbar', + 'kelachay', + 'masal', + 'lasht-e nesha', + 'lavandevil', + 'kuchesfahan', + 'asalem', + 'rahimabad', + 'sangar', + 'chaf and chamkhaleh', + 'chaboksar', + 'shaft', + 'pareh sar', + 'luleman', + 'khoshk-e bijar', + 'marjaghal', + 'kumeleh', + 'shalman', + 'bazar jomeh', + 'chubar', + 'gurab zarmikh', + 'vajargah', + 'haviq', + 'rudboneh', + 'lisar', + 'jirandeh', + 'rankuh', + 'ahmadsargurab', + 'maklavan', + 'tutkabon', + 'barehsar', + 'otaqvar', + 'deylaman', + 'masuleh'], + 'golestan': ['gorgan', + 'gonbad-e kavus', + 'aliabad-e katul', + 'bandar torkaman', + 'azadshahr', + 'kordkuy', + 'kalaleh', + 'aqqala', + 'minudasht', + 'galikash', + 'bandar-e gaz', + 'gomishan', + 'siminshahr', + 'fazelabad', + 'ramian', + 'khan bebin', + 'daland', + 'neginshahr', + 'now kandeh', + 'sarkhon kalateh', + 'jelin-e olya', + 'anbar olum', + 'maraveh tappeh', + 'faraghi', + 'tatar-e olya', + 'sangdevin', + 'mazraeh', + 'now deh khanduz', + 'incheh borun'], + 'hamadan': ['hamadan', + 'malayer', + 'asadabad', + 'nahavand', + 'tuyserkan', + 'bahar', + 'kabudarahang', + 'lalejin', + 'famenin', + 'razan', + 'maryanaj', + 'azandarian', + 'qorveh-e darjazin', + 'juraqan', + 'giyan', + 'mohajeran', + 'salehabad', + 'sarkan', + 'firuzan', + 'samen', + 'damaq', + 'barzul', + 'qahavand', + 'ajin', + 'shirin su', + 'jowkar', + 'gol tappeh', + 'farasfaj', + 'zangeneh'], + 'hormozgan': ['bandar abbas', + 'minab', + 'qeshm', + 'rudan', + 'bandar lengeh', + 'kish', + 'hajjiabad', + 'kong', + 'dargahan', + 'bandar khamir', + 'jask', + 'parsian', + 'bastak', + 'bika', + 'jenah', + 'hasht bandi', + 'ruydar', + 'hormuz', + 'suza', + 'qaleh qazi', + 'sirik', + 'tirur', + 'dashti', + 'tazian-e pain', + 'abu musa', + 'bandar charak', + 'garuk', + 'ziarat-e ali', + 'fin', + 'kushk-e nar', + 'takht', + 'kuhestak', + 'lamazan', + 'senderk', + 'fareghan', + 'sardasht', + 'gowharan', + 'sargaz', + 'dezghan', + 'kukherd'], + 'ilam': ['ilam', + 'abdanan', + 'eyvan', + 'dehloran', + 'darreh shahr', + 'arakvaz', + 'mehran', + 'sarableh', + 'asemanabad', + 'towhid', + 'chavar', + 'badreh', + 'shabab', + 'pahleh', + 'delgosha', + 'murmuri', + 'zarneh', + 'lumar', + 'musian', + 'meymeh', + 'sarabbagh', + 'salehabad', + 'mirza hoseynabad', + 'mehr', + 'balavah'], + 'isfahan': ['isfahan', + 'kashan', + 'khomeyni shahr', + 'najafabad', + 'shahin shahr', + 'shahreza', + 'fuladshahr', + 'baharestan', + 'mobarakeh', + 'aran va bidgol', + 'golpayegan', + 'zarrin shahr', + 'dorcheh piaz', + 'dowlatabad', + 'falavarjan', + 'qahderijan', + 'khvorzuq', + 'nain', + 'semirom', + 'kelishad va sudarjan', + 'goldasht', + 'gaz', + 'abrisham', + 'khansar', + 'tiran', + 'daran', + 'sedeh lenjan', + 'dizicheh', + 'varnamkhast', + 'dehaqan', + 'dastgerd', + 'ardestan', + 'chamgardan', + 'badrud', + 'imanshahr', + 'natanz', + 'chermahin', + 'fereydunshahr', + 'pir bakran', + 'kushk', + 'varzaneh', + 'nushabad', + 'baharan shahr', + 'kahriz sang', + 'bagh-e bahadoran', + 'zibashahr', + 'chadegan', + 'talkhuncheh', + 'golshahr', + 'buin va miandasht', + 'qahjaverestan', + 'zayandeh rud', + 'gorgab', + 'habibabad', + 'majlesi', + 'zavareh', + 'dehaq', + 'alavicheh', + 'zazeran', + 'manzariyeh', + 'karkevand', + 'asgharabad', + 'khur', + 'nasrabad', + 'guged', + 'harand', + 'jowzdan', + 'shadpurabad', + 'abuzeydabad', + 'sefidshahr', + 'meymeh', + 'barf anbar', + 'meshkat', + 'hana', + 'rozveh', + 'komeshcheh', + 'vazvan', + 'kuhpayeh', + 'sin', + 'golshan', + 'damaneh', + 'sagzi', + 'hasanabad', + 'nikabad', + 'mohammadabad', + 'mahabad', + 'asgaran', + 'jandaq', + 'baghshad', + 'tudeshk', + 'jowsheqan va kamu', + 'ziar', + 'qamsar', + 'afus', + 'rezvanshahr', + 'ezhiyeh', + 'khaledabad', + 'farrokhi', + 'kamu va chugan', + 'barzok', + 'tarq', + 'vanak', + 'komeh', + 'neyasar', + 'bafran', + 'anarak', + 'lay bid'], + 'kerman': ['kerman', + 'sirjan', + 'rafsanjan', + 'jiroft', + 'bam', + 'zarand', + 'kahnuj', + 'shahr-e babak', + 'baft', + 'bardsir', + 'baravat', + 'ravar', + 'mohamadabad', + 'najaf shahr', + 'mahan', + 'anbarabad', + 'manujan', + 'anar', + 'rudbar', + 'rabor', + 'qaleh ganj', + 'kuhbanan', + 'darb-e behesht', + 'baghin', + 'rayen', + 'negar', + 'mes-e sarcheshmeh', + 'ekhtiarabad', + 'golbaf', + 'zeydabad', + 'zangiabad', + 'khursand', + 'pariz', + 'dehaj', + 'koshkuiyeh', + 'golzar', + 'mohammadabad-e gonbaki', + 'fahraj', + 'arzuiyeh', + 'zeh-e kalut', + 'jebalbarez', + 'chatrud', + 'yazdan shahr', + 'nowdezh', + 'faryab', + 'reyhan shahr', + 'kian shahr', + 'bezenjan', + 'lalehzar', + 'aminshahr', + 'dow sari', + 'boluk', + 'bahreman', + 'narmashir', + 'shahdad', + 'khatunabad', + 'jupar', + 'balvard', + 'jowzam', + 'kazemabad', + 'khanuk', + 'mohiabad', + 'anduhjerd', + 'khvaju shahr', + 'safayyeh', + 'hamashahr', + 'dashtkar', + 'mardehek', + 'nezamshahr', + 'hanza', + 'hojedk'], + 'kermanshah': ['kermanshah', + 'eslamabad-e gharb', + 'kangavar', + 'harsin', + 'javanrud', + 'sarpol-e zahab', + 'sonqor', + 'sahneh', + 'gilan-e gharb', + 'paveh', + 'ravansar', + 'qasr-e shirin', + 'tazehabad', + 'kerend-gharb', + 'gahvareh', + 'kuzaran', + 'banevreh', + 'gowdin', + 'nowdeshah', + 'shahrak-e rijab', + 'shahu', + 'sarmast', + 'bisotun', + 'bayangan', + 'nowsud', + 'ezgeleh', + 'homeyl', + 'satar', + 'robat', + 'miyan rahan', + 'halashi', + 'sumar'], + 'khuzestan': ['ahvaz', + 'dezful', + 'abadan', + 'bandar-e mahshahr', + 'andimeshk', + 'khorramshahr', + 'behbahan', + 'izeh', + 'shushtar', + 'masjed soleyman', + 'omidiyeh', + 'bandar-e emam khomeyni', + 'kut-e abdollah', + 'shush', + 'ramhormoz', + 'shadegan', + 'susangerd', + 'hendijan', + 'ramshir', + 'sheyban', + 'hamidiyeh', + 'gotvand', + 'bagh-e malek', + 'chamran', + 'lali', + 'haftkel', + 'hoveyzeh', + 'veys', + 'mollasani', + 'aghajari', + 'sharaft', + 'dezab', + 'arvandkenar', + 'shamsabad', + 'mianrud', + 'qaleh tall', + 'safiabad', + 'horr', + 'hosseinabad', + 'bostan', + 'chavibdeh', + 'elhayi', + 'seydun', + 'saleh shahr', + 'sardasht', + 'alvan', + 'hamzeh', + 'torkalaki', + 'darkhoveyn', + 'siah mansur', + 'jannat makan', + 'abu homeyzeh', + 'dehdez', + 'cham golak', + 'mansuriyeh', + 'sardaran', + 'shahrak-e babak', + 'kut-e seyyed naim', + 'tashan', + 'khanafereh', + 'rafi', + 'meydavud', + 'saleh moshatat', + 'guriyeh', + 'jayezan', + 'saland', + 'minushahr', + 'qaleh-ye khvajeh', + 'bidrubeh', + 'moshrageh', + 'choghamish', + 'hoseyniyeh', + 'somaleh', + 'abezhdan', + 'zahreh', + 'golgir', + 'moqavemat', + 'shirin shahr'], + 'kohgiluyeh and boyer-ahmad': ['yasuj', + 'dogonbadan', + 'dehdasht', + 'charam', + 'likak', + 'madavan', + 'landeh', + 'basht', + 'sisakht', + 'suq', + 'dishmok', + 'qaleh raisi', + 'margown', + 'pataveh', + 'sarfaryab', + 'chitab', + 'garab-e sofla'], + 'kurdistan': ['sanandaj', + 'saqqez', + 'qorveh', + 'marivan', + 'baneh', + 'kamyaran', + 'divandarreh', + 'bijar', + 'dehgolan', + 'kani dinar', + 'serishabad', + 'delbaran', + 'sarvabad', + 'bolbanabad', + 'yasukand', + 'muchesh', + 'aavraman takht', + 'dezej', + 'armardeh', + 'saheb', + 'zarrineh', + 'tup aghaj', + 'buin-e sofla', + 'shuyesheh', + 'kani sur', + 'pir taj', + 'bardeh rasheh', + 'babarashani', + 'chenareh'], + 'lorestan': ['khorramabad', + 'borujerd', + 'dorud', + 'kuhdasht', + 'aligudarz', + 'nurabad', + 'azna', + 'aleshtar', + 'pol-e dokhtar', + 'kunani', + 'mamulan', + 'chaqabol', + 'oshtorinan', + 'garab', + 'sepiddasht', + 'firuzabad', + 'zagheh', + 'darb-e gonbad', + 'veysian', + 'bayranshahr', + 'sarab-e dowreh', + 'momenabad', + 'chalanchulan', + 'shulehabad-e olya', + 'haft cheshmeh'], + 'markazi': ['arak', + 'saveh', + 'khomeyn', + 'mahallat', + 'delijan', + 'shazand', + 'mamuniyeh', + 'mahajeran', + 'tafresh', + 'milajerd', + 'ashtian', + 'komijan', + 'khondab', + 'shahbaz', + 'astaneh', + 'zaviyeh', + 'parandak', + 'nimvar', + 'farmahin', + 'davudabad', + 'gharqabad', + 'khoshkrud', + 'javersiyan', + 'aveh', + 'karchan', + 'nowbaran', + 'khenejin', + 'naraq', + 'tureh', + 'saruq', + 'hendudur', + 'qurchi bashi', + 'razeghi', + 'bazneh'], + 'mazandaran': ['sari', + 'babol', + 'amol', + 'qaem shahr', + 'behshahr', + 'chalus', + 'neka', + 'babolsar', + 'tonekabon', + 'nowshahr', + 'fereydunkenar', + 'ramsar', + 'juybar', + 'mahmudabad', + 'amirkola', + 'nur', + 'galugah', + 'ketalem and sadat shahr', + 'zirab', + 'abbasabad', + 'kelardasht', + 'rostamkola', + 'khorramabad', + 'shirud', + 'chamestan', + 'khalil shahr', + 'hachirud', + 'arateh', + 'salman shahr', + 'surak', + 'shirgah', + 'pol sefid', + 'kiakola', + 'bahnemir', + 'royan', + 'izadshahr', + 'gatab', + 'sorkhrud', + 'marzanabad', + 'nashtarud', + 'kelarabad', + 'galugah', + 'kiasar', + 'kalleh bast', + 'zargarmahalleh', + 'pul', + 'kojur', + 'khush rudpey', + 'imamzadeh abdollah', + 'kuhi kheyl', + 'baladeh', + 'dabudasht', + 'alasht', + 'rineh', + 'pain hular', + 'marzikola', + 'gazanak', + 'farim'], + 'north khorasan': ['bojnord', + 'shirvan', + 'esfarayen', + 'jajarm', + 'garmeh', + 'ashkhaneh', + 'faruj', + 'raz', + 'daraq', + 'ziarat', + 'safiabad', + 'ivar', + 'shahrabad-e khavar', + 'titkanlu', + 'chenaran', + 'qazi', + 'shoqan', + 'sankhvast', + 'pish qaleh', + 'lujali', + 'hesar-e garmkhan', + 'qushkhaneh'], + 'qazvin': ['qazvin', + 'alvand', + 'eqbaliyeh', + 'takestan', + 'abyek', + 'mohammadiyeh', + 'bidestan', + 'mahmudabad nemuneh', + 'buin zahra', + 'sharifiyeh', + 'shal', + 'esfarvarin', + 'danesfahan', + 'ziaabad', + 'khorramdasht', + 'narjeh', + 'abgarm', + 'sagzabad', + 'ardak', + 'avaj', + 'khak-e ali', + 'moallem kalayeh', + 'kuhin', + 'razmian', + 'sirdan'], + 'qom': ['qom', 'qanavat', 'jafariyeh', 'dastjerd', 'kahak', 'salafchegan'], + 'razavi khorasan': ['mashhad', + 'nishapur', + 'sabzevar', + 'torbat-e heydarieh', + 'kashmar', + 'quchan', + 'torbat-e jam', + 'taybad', + 'chenaran', + 'sarakhs', + 'gonabad', + 'fariman', + 'shahr jadid-e golbahar', + 'dargaz', + 'khaf', + 'bardaskan', + 'torqabeh', + 'feyzabad', + 'neqab', + 'shandiz', + 'kharv', + 'khalilabad', + 'sangan', + 'bajestan', + 'kariz', + 'mashhad rizeh', + 'dowlatabad', + 'bakharz', + 'razaviyeh', + 'salehabad', + 'farhadgerd', + 'golmakan', + 'ahmadabad-e sowlat', + 'nasrabad', + 'nilshahr', + 'nashtifan', + 'kalat', + 'jangal', + 'salami', + 'joghatai', + 'anabad', + 'kondor', + 'roshtkhar', + 'firuzeh', + 'darrud', + 'sefid sang', + 'soltanabad', + 'rivash', + 'bidokht', + 'qasemabad', + 'qalandarabad', + 'kakhk', + 'rud ab', + 'bar', + 'shahr-e zow', + 'bayg', + 'yunesi', + 'shadmehr', + 'kadkan', + 'qadamgah', + 'davarzan', + 'now khandan', + 'chapeshlu', + 'sheshtomad', + 'shahrabad', + 'lotfabad', + 'robat-e sang', + 'chekneh', + 'eshqabad', + 'hemmatabad', + 'malekabad', + 'mazdavand', + 'bajgiran'], + 'semnan': ['semnan', + 'shahrud', + 'damghan', + 'garmsar', + 'mehdishahr', + 'aradan', + 'eyvanki', + 'bastam', + 'sorkheh', + 'shahmirzad', + 'mojen', + 'kalateh khij', + 'darjazin', + 'meyami', + 'kalateh rudbar', + 'dibaj', + 'beyarjomand', + 'amiriyeh', + 'rudian', + 'kohanabad'], + 'sistan and baluchestan': ['zahedan', + 'zabol', + 'iranshahr', + 'chabahar', + 'saravan', + 'khash', + 'konarak', + 'jaleq', + 'nik shahr', + 'pishin', + 'zehak', + 'qasr-e qand', + 'suran', + 'fanuj', + 'bampur', + 'zaboli', + 'mohamadan', + 'galmurti', + 'rasak', + 'mirjaveh', + 'dust mohammad', + 'bent', + 'nosratabad', + 'bazman', + 'negur', + 'mohamadi', + 'bonjar', + 'gosht', + 'ali akbar', + 'espakeh', + 'zarabad', + 'adimi', + 'nukabad', + 'mohammadabad', + 'sirkan', + 'hiduj', + 'sarbaz', + 'ramshar'], + 'south khorasan': ['birjand', + 'qaen', + 'tabas', + 'ferdows', + 'nehbandan', + 'boshruyeh', + 'sarayan', + 'sarbisheh', + 'eslamiyeh', + 'ayask', + 'khezri dasht beyaz', + 'eshqabad', + 'hajjiabad', + 'asadiyeh', + 'seh qaleh', + 'nimbeluk', + 'tabas-e masina', + 'khusf', + 'esfeden', + 'arianshahr', + 'deyhuk', + 'mud', + 'shusef', + 'eresk', + 'qohestan', + 'gazik', + 'zohan', + 'mohammadshahr'], + 'tehran': ['tehran', + 'eslamshahr', + 'golestan', + 'qods', + 'malard', + 'varamin', + 'shahriar', + 'qarchak', + 'nasimshahr', + 'pakdasht', + 'pardis', + 'andisheh', + 'robat karim', + 'parand', + 'salehieh', + 'damavand', + 'baqershahr', + 'baghestan', + 'bumahen', + 'chahardangeh', + 'pishva', + 'sabashahr', + 'kahrizak', + 'vahidieh', + 'nasirshahr', + 'ferdowsieh', + 'hasanabad', + 'safadasht', + 'rudehen', + 'shahedshahr', + 'ferunabad', + 'lavasan', + 'firuzkuh', + 'ahmadabad-e mostowfi', + 'absard', + 'sharifabad', + 'fasham', + 'javadabad', + 'shemshak', + 'kilan', + 'abali', + 'arjomand'], + 'west azerbaijan': ['urmia', + 'khoy', + 'bukan', + 'mahabad', + 'miandoab', + 'salmas', + 'piranshahr', + 'naqadeh', + 'takab', + 'maku', + 'oshnavieh', + 'sardasht', + 'shahin dezh', + 'qarah zia od din', + 'showt', + 'rabat', + 'siah cheshmeh', + 'poldasht', + 'bazargan', + 'tazeh shahr', + 'mohammadyar', + 'chahar borj', + 'firuraq', + 'dizaj diz', + 'nushin', + 'mahmudabad', + 'mirabad', + 'qatur', + 'baruq', + 'keshavarz', + 'gerd kashaneh', + 'ivughli', + 'nazok-e olya', + 'qushchi', + 'nalus', + 'marganlar', + 'avajiq', + 'serow', + 'silvaneh', + 'simmineh', + 'zurabad', + 'khalifan'], + 'yazd': ['yazd', + 'meybod', + 'ardakan', + 'bafq', + 'hamidiya', + 'mehriz', + 'abarkuh', + 'taft', + 'shahediyeh', + 'ashkezar', + 'herat', + 'zarach', + 'marvast', + 'mehrdasht', + 'behabad', + 'bafruiyeh', + 'ahmadabad', + 'nadushan', + 'aqda', + 'nir', + 'khezrabad'], + 'zanjan': ['zanjan', + 'abhar', + 'khorramdarreh', + 'qeydar', + 'hidaj', + 'sain qaleh', + 'soltaniyeh', + 'sojas', + 'sohrevard', + 'zarrin rud', + 'ab bar', + 'mah neshan', + 'garmab', + 'dandi', + 'nurabad', + 'karasf', + 'zarrinabad', + 'armaghankhaneh', + 'chavarzaq', + 'halab', + 'nik pey']} diff --git a/apps/users/migrations/0003_auto_20201115_0948.py b/apps/users/migrations/0003_auto_20201115_0948.py new file mode 100644 index 0000000..c7ff24a --- /dev/null +++ b/apps/users/migrations/0003_auto_20201115_0948.py @@ -0,0 +1,33 @@ +# Generated by Django 3.1.3 on 2020-11-15 09:48 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0002_remove_user_code'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='address', + field=models.TextField(blank=True, null=True, verbose_name='address'), + ), + migrations.AddField( + model_name='user', + name='city', + field=models.IntegerField(blank=True, null=True, verbose_name='City'), + ), + migrations.AddField( + model_name='user', + name='postal_code', + field=models.CharField(blank=True, max_length=20, null=True, verbose_name='postal_code'), + ), + migrations.AddField( + model_name='user', + name='province', + field=models.IntegerField(blank=True, null=True, verbose_name='Province'), + ), + ] diff --git a/apps/users/models.py b/apps/users/models.py index cd127b1..7add8d0 100644 --- a/apps/users/models.py +++ b/apps/users/models.py @@ -65,6 +65,18 @@ class User(AbstractUser): first_name = models.CharField(_('first name'), max_length=30, blank=True) last_name = models.CharField(_('last name'), max_length=150, blank=True) email = models.EmailField(_('email address'), blank=True) + + # country = models.CharField(_('country'), max_length=50, blank=True, null=True) + # province = models.CharField(_('province'), max_length=50, blank=True, null=True) + # city = models.CharField(_('city'), max_length=50, blank=True, null=True) + # postal_code = models.CharField(_('postal_code'), max_length=20, blank=True, null=True) + # address = models.TextField(_('address'), null=True, blank=True) + + province = models.IntegerField(verbose_name=_("Province"), blank=True, null=True) + city = models.IntegerField(verbose_name=_("City"), blank=True, null=True) + postal_code = models.CharField(_('postal_code'), max_length=20, blank=True, null=True) + address = models.TextField(_('address'), null=True, blank=True) + is_staff = models.BooleanField( _('staff status'), default=False, @@ -121,17 +133,6 @@ class User(AbstractUser): self.otp_expire = timezone.now() + timedelta(minutes=5) self.otp_try = 0 - # def set_code(self): - # for code in random.sample(range(10000, 100000), 90000): - # try: - # code = str(code) - # self.code = code - # return self.save() - # except: - # pass - # - # raise APIException('system error') - def otp_is_valid(self): return bool(self.otp and timezone.now() <= self.otp_expire) diff --git a/apps/users/serializers.py b/apps/users/serializers.py index 54b2ee7..5cc12f3 100644 --- a/apps/users/serializers.py +++ b/apps/users/serializers.py @@ -7,13 +7,8 @@ from django.utils import timezone class PublicUserSerializer(serializers.ModelSerializer): class Meta: model = User - fields = ('avatar', 'name', 'username', 'email', "first_name", "last_name", "uuid") - read_only_fields = ['avatar', 'name', 'username', 'email', 'first_name', 'last_name', "uuid"] - - # def to_internal_value(self, data): - # code = data.get('code') - # if code: - # return User.objects.get(code=code) + fields = ('avatar', 'name', 'username', "first_name", "last_name", "uuid") + read_only_fields = ['avatar', 'name', 'username', 'first_name', 'last_name', "uuid"] class AccountSerializer(serializers.ModelSerializer): @@ -31,6 +26,11 @@ class AccountSerializer(serializers.ModelSerializer): 'avatar', 'iban', 'iban_verified', + # 'country', + 'province', + 'city', + 'postal_code', + 'address', ) read_only_fields = ['uuid', 'balance', 'email', 'phone_number', 'iban_verified'] @@ -51,6 +51,7 @@ class RequestOTPSerializer(serializers.ModelSerializer): write_only_fields = [] def save(self, **kwargs): + # TODO: move it to query set validated_data = self.validated_data user = User.objects.filter(phone_number=validated_data['phone_number']).first() if not user: diff --git a/apps/users/views.py b/apps/users/views.py index 0ffbc48..386d04d 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -4,7 +4,7 @@ from django.contrib.auth.views import LoginView from django.shortcuts import render from django.utils import timezone from oauth2_provider.contrib.rest_framework import IsAuthenticatedOrTokenHasScope -from rest_framework import generics, status +from rest_framework import generics, status, permissions from rest_framework.response import Response from rest_framework.views import APIView