Search code examples
pythondjangodjango-modelsmodeldjango-templates

in django, let me know drop- down list


i want to make nationality drop down list
i know how to make it, the problem is the number of nationality is over 100... i do not think i can type all nationalities...

can you help me..? here is my model

Nationality_CHOICES = (
    ('AFGHANS', 'Afghans'),
    ('ALBANIANS', 'Albanians'),
   ......
)
class Student(models.Model):


 Nationality = models.CharField(max_length=2,
                                  choices=Nationality_CHOICES,
                                  null = False)

here is all the nationalities :

Afghans Albanians Algerians Americans Andorrans Angolans Argentines Armenians Aromanians Arubans Australians Austrians Azerbaijanis Bahamians Bahrainis Bangladeshis Barbadians Basotho Basques Belarusians Belgians Belizeans Bermudians Boers Bosniaks Brazilians Bretons British British Virgin Islanders Bruneians Bulgarians Macedonian Bulgarians Burkinabès Burundians Cambodians Cameroonians Canadians Catalans Cape Verdeans Chadians Chileans Chinese Colombians Comorians Congolese Croatians Cubans Cypriots Turkish Cypriots Czechs Danes Dominicans (Republic) Dominicans (Commonwealth) Dutch East Timorese Ecuadorians Egyptians Emiratis English Eritreans Estonians Ethiopians Falkland Islanders Faroese Finns Finnish Swedish Fijians Filipinos French citizens Georgians Germans Baltic Germans Ghanaians Gibraltar Greeks Greek Macedonians Grenadians Guatemalans Guianese (French) Guineans Guinea-Bissau nationals Guyanese Haitians Hondurans Hong Kong Hungarians Icelanders I-Kiribati Indians Indonesians Iranians Iraqis Irish Israelis Italians Ivoirians Jamaicans Japanese Jordanians Kazakhs Kenyans Koreans Kosovars Kurds Kuwaitis Kyrgyzs Lao Latvians Lebanese Liberians Libyans Liechtensteiners Lithuanians Luxembourgers Macao Macedonians Malagasy Malaysians Malawians Maldivians Malians Maltese Manx Mauritians Mexicans Moldovans Moroccans Mongolians Montenegrins Namibians Nepalese New Zealanders Nicaraguans Nigeriens Nigerians Norwegians Pakistanis Palauans Palestinians Panamanians Papua New Guineans Paraguayans Peruvians Poles Portuguese Puerto Ricans Quebecers Réunionnais Romanians Russians Baltic Russians Rwandans Salvadorans São Tomé and Príncipe Saudis Scots Senegalese Serbs Sierra Leoneans Singaporeans Sindhian Slovaks Slovenes Somalis Somalilanders South Africans Spaniards Sri Lankans St Lucians Sudanese Surinamese Swedes Swiss Syriacs Syrians Tajik Taiwanese Tanzanians Thais Tibetans Tobagonians Trinidadians Tunisians Turks Tuvaluans Ugandans Ukrainians Uruguayans Uzbeks Vanuatuans Venezuelans Vietnamese Welsh Yemenis Zambians Zimbabweans Assyrians Azeris Basques Bengalis Berbers Boers Buryats Cajuns Catalans Celts Chuvash Greeks Han Chinese Hispanic and Latino Americans Hutus Igbo Indigenous Australians Indigenous people of the Americas First Nations Huaorani people Inuit Canadian Inuit Greenlandic Inuit Métis people Native Americans Japanese Karen Kodavas Kurds Macedonians Malays Mongolians Roma Samis Sikhs Silesians Sinhalese Syriacs Kannadigas Tamils Tatars Tutsis Zulus

here all language Abaza

Abenaki

Abkhaz

Acehnese

Acholi

Achuar-Shiwiar

Adyghe

Adzera

Afaan Oromo

Afar

Afrikaans

Aghul

Aguacateco

Ainu

Ajië

Akan

Akhvakh

Akkadian

Aklan

Akurio

Alabama

Albanian

Aleut

Algonquin

Alsatian

Altay

Amarakaeri

Alur

Amharic

Amis

Andi

Anutan

Apache

Arabela

Arabic (Algerian)

Arabic (Egyptian)

Arabic (Lebanese)

Arabic (Modern Standard)

Arabic (Moroccan)

Arabic (Syrian)

Aragonese

Aramaic (Ancient)

Aramaic (Syriac)

Aramaic (Neo-)

Aranese

Arapaho

Arbëresh

Archi

Argobba

Armenian

Aromanian (Vlach)

Arrernte

Arvanitic

Asháninka

Assamese

(Neo-)Assyrian

Asturian

Atayal

Atikamekw

Avar

Avestan

Awngi

Aymara

Äynu

Azerbaijani

Babine-Witsuwit'en

Badaga

Bagatha

Bagvalal

Balinese

Balkar (Karachay-Balkar)

Baluchi

Bambara

Baniwa

Bantawa

Bartangi

Bashkir

Basque

Bassa

Batak Dairi

Batak Karo

Batak Mandailing

Batak Simalungun

Batak Toba

Bats

Bavarian

Bavarian (Central)

Bavarian (Northern)

Bavarian (Southern)

Beaver

Beja

Belarusian

Bemba

Bench

Bengali

Berber

Bhojpuri

Bikol/Bicol

Bima

Bislama

Blackfoot

Blin

Bodo

Bolinao

Bora

Bosnian

Botlikh

Bouyei

Breton

Budukh

Buginese

Buhid

Bulgarian

Bundjalung

Burmese

Burushaski

Buryat

Bushi

Carrier

Catalan

Cayuga

Cebuano

Chagatai Chaha

Chamorro

Chechen

Cherokee

Cheyenne

Chichewa

Chickasaw

Chinese

Chinese (Cantonese)

Chinese (Dungan)

Chinese (Gan)

Chinese (Hakka)

Chinese (Mandarin)

Chinese (Shanghainese)

Chinese (Taiwanese)

Chinese (Teochew)

Chinese (Xiang)

Chipewyan

Choctaw

Comanche

Cornish

Corsican

Cree

Creek

Croatian

Czech

Dakota

Dangme Danish

Dargwa

Dari

Dinka

Dungan

Dutch

Dzongkha / Bhutanese

English (Old) / Anglo-Saxon

Erzya

Estonian

Esperanto

Ewe

Eyak

Faroese

Fijian

Finnish

Flemish

Fon

French

Frisian (North)

Frisian (West)

Friulan

Fula

Ga

Galician

Ganda

Ge'ez

Genoese

Georgian

German

Godoberi

Gooniyandi

Greek

Greenlandic

Guernsey Norman

Guarani

Gujarati

Gwich'in

Haida

Haitian Creole

Hän

Harari

Hausa

Hawaiian

Hebrew

Herero

Hindi

Hungarian

Icelandic

Igbo

Ilocano

Indonesian

Ingush

Inuktitut

Iñupiaq

Irish (Gaelic)

Italian

Japanese

Javanese

Jersey Norman

Kabardian

Kabyle

Kaingang

Kannada

Kanuri

Kapampangan

Karakalpak

Karelian

Kashmiri

Kashubian

Kazakh

Khakas

Khmer

Khoekhoe

Kikuyu

Kinyarwanda

Kiribati

Kirundi

Komi

Kongo

Konkani

Korean

Kumyk

Kurdish

Kven

Kwanyama Kyrgyz

Ladin

Ladino

Lahnda Lakota

Lao

Latin

Latvian

Laz

Lezgian

Limburgish Lingala

Lithuanian

Livonian

Lombard

Low German/Low Saxon

Luo

Luxembourgish

Maasai/Maa

Macedonian

Maldivian

Maithili

Malagasy

Malay

Malayalam

Maltese

Mandinka

Manipuri

Mansi

Manx

Māori

Marathi

Mari/Cheremis

Marshallese

Menominee Mirandese

Mohawk

Moksha

Moldovan

Mongolian

Montagnais

Nahuatl

Naskapi

Nauruan

Navajo

Occitan

Oshiwambo

Nepali

Newari

Niuean

Nogai

Noongar

Northern Sotho

Norwegian

Nyamwezi Nyoro Ojibwe

O'odham

Odia

Ossetian

Palauan

Pali

Papiamento

Pashto

Persian

Piedmontese

Polish

Portuguese

Punjabi

Quechua

Raga

Rapanui

Rarotongan

Romanian

Romansh

Romani

Rotuman

Russian

Ruthenian

Saami (Inari)

Sámi (Kildin)

Sámi (Lule)

Sámi (North)

Sámi (Pite)

Sámi (Skolt)

Sámi (South)

Sámi (Ter)

Sámi (Ume)

Santali

Samoan

Sango

Sanskrit

Sardinian

Sark Norman Scots

Scottish Gaelic

Selkup Serbian

Shavante

Shawnee

Shona

Shor

Sicilian

Sidamo Silesian

Sindhi

Sinhala

Silt'e

Slovak

Slovenian

Somali

Soninke

Sorbian (Lower)

Sorbian (Upper)

Southern Sotho

South Slavey Spanish

Sundanese

Svan

Swabish Swahili

Swati

Swedish

Swiss German

Syriac

Tabassaran

Tagalog

Tahitian

Tai Nüa

Tajik

Tamil

Tatar

Telugu

Tetum

Thai

Tibetan

Tigre

Tigrinya

Tlingit

Tok Pisin

Tonga Tongan

Tsez

Tsonga

Tswana

Tumbuka

Turkish

Turkmen

Tuscarora

Tuvaluan

Tuvan

Twi

Udmurt

Ukrainian

Urdu

Uyghur

Uzbek

Venda

Venetian

Veps

Vietnamese

Võro

Votic

Walloon

Waray-Waray

Welsh

Wiradjuri

Wolof

Xamtanga

Xhosa

Yagua

Yi

Yiddish

Yindjibarndi

Yolngu

Yoruba

Yupik

Zhuang

Zulu

Zuñi


Solution

  • Here is a small python script to do just that. You would still have to edit some nations which are composed by several words.

    file_name = "nat.txt"
    with open(file_name) as f:
    for line in f:
        for word in line.split(" "):
        print "(\'" + word.decode('utf-8').upper().encode('utf-8') +"\', \'" + word +"\'),"
    

    it also takes care of unicode characters

    and the final list:

    ('AFGHANS', 'Afghans'),
    ('ALBANIANS', 'Albanians'),
    ('ALGERIANS', 'Algerians'),
    ('AMERICANS', 'Americans'),
    ('ANDORRANS', 'Andorrans'),
    ('ANGOLANS', 'Angolans'),
    ('ARGENTINES', 'Argentines'),
    ('ARMENIANS', 'Armenians'),
    ('AROMANIANS', 'Aromanians'),
    ('ARUBANS', 'Arubans'),
    ('AUSTRALIANS', 'Australians'),
    ('AUSTRIANS', 'Austrians'),
    ('AZERBAIJANIS', 'Azerbaijanis'),
    ('BAHAMIANS', 'Bahamians'),
    ('BAHRAINIS', 'Bahrainis'),
    ('BANGLADESHIS', 'Bangladeshis'),
    ('BARBADIANS', 'Barbadians'),
    ('BASOTHO', 'Basotho'),
    ('BASQUES', 'Basques'),
    ('BELARUSIANS', 'Belarusians'),
    ('BELGIANS', 'Belgians'),
    ('BELIZEANS', 'Belizeans'),
    ('BERMUDIANS', 'Bermudians'),
    ('BOERS', 'Boers'),
    ('BOSNIAKS', 'Bosniaks'),
    ('BRAZILIANS', 'Brazilians'),
    ('BRETONS', 'Bretons'),
    ('BRITISH', 'British'),
    ('BRITISH', 'British'),
    ('VIRGIN', 'Virgin'),
    ('ISLANDERS', 'Islanders'),
    ('BRUNEIANS', 'Bruneians'),
    ('BULGARIANS', 'Bulgarians'),
    ('MACEDONIAN', 'Macedonian'),
    ('BULGARIANS', 'Bulgarians'),
    ('BURKINABÈS', 'Burkinabès'),
    ('BURUNDIANS', 'Burundians'),
    ('CAMBODIANS', 'Cambodians'),
    ('CAMEROONIANS', 'Cameroonians'),
    ('CANADIANS', 'Canadians'),
    ('CATALANS', 'Catalans'),
    ('CAPE', 'Cape'),
    ('VERDEANS', 'Verdeans'),
    ('CHADIANS', 'Chadians'),
    ('CHILEANS', 'Chileans'),
    ('CHINESE', 'Chinese'),
    ('COLOMBIANS', 'Colombians'),
    ('COMORIANS', 'Comorians'),
    ('CONGOLESE', 'Congolese'),
    ('CROATIANS', 'Croatians'),
    ('CUBANS', 'Cubans'),
    ('CYPRIOTS', 'Cypriots'),
    ('TURKISH', 'Turkish'),
    ('CYPRIOTS', 'Cypriots'),
    ('CZECHS', 'Czechs'),
    ('DANES', 'Danes'),
    ('DOMINICANS', 'Dominicans'),
    ('(REPUBLIC)', '(Republic)'),
    ('DOMINICANS', 'Dominicans'),
    ('(COMMONWEALTH)', '(Commonwealth)'),
    ('DUTCH', 'Dutch'),
    ('EAST', 'East'),
    ('TIMORESE', 'Timorese'),
    ('ECUADORIANS', 'Ecuadorians'),
    ('EGYPTIANS', 'Egyptians'),
    ('EMIRATIS', 'Emiratis'),
    ('ENGLISH', 'English'),
    ('ERITREANS', 'Eritreans'),
    ('ESTONIANS', 'Estonians'),
    ('ETHIOPIANS', 'Ethiopians'),
    ('FALKLAND', 'Falkland'),
    ('ISLANDERS', 'Islanders'),
    ('FAROESE', 'Faroese'),
    ('FINNS', 'Finns'),
    ('FINNISH', 'Finnish'),
    ('SWEDISH', 'Swedish'),
    ('FIJIANS', 'Fijians'),
    ('FILIPINOS', 'Filipinos'),
    ('FRENCH', 'French'),
    ('CITIZENS', 'citizens'),
    ('GEORGIANS', 'Georgians'),
    ('GERMANS', 'Germans'),
    ('BALTIC', 'Baltic'),
    ('GERMANS', 'Germans'),
    ('GHANAIANS', 'Ghanaians'),
    ('GIBRALTAR', 'Gibraltar'),
    ('GREEKS', 'Greeks'),
    ('GREEK', 'Greek'),
    ('MACEDONIANS', 'Macedonians'),
    ('GRENADIANS', 'Grenadians'),
    ('GUATEMALANS', 'Guatemalans'),
    ('GUIANESE', 'Guianese'),
    ('(FRENCH)', '(French)'),
    ('GUINEANS', 'Guineans'),
    ('GUINEA-BISSAU', 'Guinea-Bissau'),
    ('NATIONALS', 'nationals'),
    ('GUYANESE', 'Guyanese'),
    ('HAITIANS', 'Haitians'),
    ('HONDURANS', 'Hondurans'),
    ('HONG', 'Hong'),
    ('KONG', 'Kong'),
    ('HUNGARIANS', 'Hungarians'),
    ('ICELANDERS', 'Icelanders'),
    ('I-KIRIBATI', 'I-Kiribati'),
    ('INDIANS', 'Indians'),
    ('INDONESIANS', 'Indonesians'),
    ('IRANIANS', 'Iranians'),
    ('IRAQIS', 'Iraqis'),
    ('IRISH', 'Irish'),
    ('ISRAELIS', 'Israelis'),
    ('ITALIANS', 'Italians'),
    ('IVOIRIANS', 'Ivoirians'),
    ('JAMAICANS', 'Jamaicans'),
    ('JAPANESE', 'Japanese'),
    ('JORDANIANS', 'Jordanians'),
    ('KAZAKHS', 'Kazakhs'),
    ('KENYANS', 'Kenyans'),
    ('KOREANS', 'Koreans'),
    ('KOSOVARS', 'Kosovars'),
    ('KURDS', 'Kurds'),
    ('KUWAITIS', 'Kuwaitis'),
    ('KYRGYZS', 'Kyrgyzs'),
    ('LAO', 'Lao'),
    ('LATVIANS', 'Latvians'),
    ('LEBANESE', 'Lebanese'),
    ('LIBERIANS', 'Liberians'),
    ('LIBYANS', 'Libyans'),
    ('LIECHTENSTEINERS', 'Liechtensteiners'),
    ('LITHUANIANS', 'Lithuanians'),
    ('LUXEMBOURGERS', 'Luxembourgers'),
    ('MACAO', 'Macao'),
    ('MACEDONIANS', 'Macedonians'),
    ('MALAGASY', 'Malagasy'),
    ('MALAYSIANS', 'Malaysians'),
    ('MALAWIANS', 'Malawians'),
    ('MALDIVIANS', 'Maldivians'),
    ('MALIANS', 'Malians'),
    ('MALTESE', 'Maltese'),
    ('MANX', 'Manx'),
    ('MAURITIANS', 'Mauritians'),
    ('MEXICANS', 'Mexicans'),
    ('MOLDOVANS', 'Moldovans'),
    ('MOROCCANS', 'Moroccans'),
    ('MONGOLIANS', 'Mongolians'),
    ('MONTENEGRINS', 'Montenegrins'),
    ('NAMIBIANS', 'Namibians'),
    ('NEPALESE', 'Nepalese'),
    ('NEW', 'New'),
    ('ZEALANDERS', 'Zealanders'),
    ('NICARAGUANS', 'Nicaraguans'),
    ('NIGERIENS', 'Nigeriens'),
    ('NIGERIANS', 'Nigerians'),
    ('NORWEGIANS', 'Norwegians'),
    ('PAKISTANIS', 'Pakistanis'),
    ('PALAUANS', 'Palauans'),
    ('PALESTINIANS', 'Palestinians'),
    ('PANAMANIANS', 'Panamanians'),
    ('PAPUA', 'Papua'),
    ('NEW', 'New'),
    ('GUINEANS', 'Guineans'),
    ('PARAGUAYANS', 'Paraguayans'),
    ('PERUVIANS', 'Peruvians'),
    ('POLES', 'Poles'),
    ('PORTUGUESE', 'Portuguese'),
    ('PUERTO', 'Puerto'),
    ('RICANS', 'Ricans'),
    ('QUEBECERS', 'Quebecers'),
    ('RÉUNIONNAIS', 'Réunionnais'),
    ('ROMANIANS', 'Romanians'),
    ('RUSSIANS', 'Russians'),
    ('BALTIC', 'Baltic'),
    ('RUSSIANS', 'Russians'),
    ('RWANDANS', 'Rwandans'),
    ('SALVADORANS', 'Salvadorans'),
    ('SÃO', 'São'),
    ('TOMÉ', 'Tomé'),
    ('AND', 'and'),
    ('PRÍNCIPE', 'Príncipe'),
    ('SAUDIS', 'Saudis'),
    ('SCOTS', 'Scots'),
    ('SENEGALESE', 'Senegalese'),
    ('SERBS', 'Serbs'),
    ('SIERRA', 'Sierra'),
    ('LEONEANS', 'Leoneans'),
    ('SINGAPOREANS', 'Singaporeans'),
    ('SINDHIAN', 'Sindhian'),
    ('SLOVAKS', 'Slovaks'),
    ('SLOVENES', 'Slovenes'),
    ('SOMALIS', 'Somalis'),
    ('SOMALILANDERS', 'Somalilanders'),
    ('SOUTH', 'South'),
    ('AFRICANS', 'Africans'),
    ('SPANIARDS', 'Spaniards'),
    ('SRI', 'Sri'),
    ('LANKANS', 'Lankans'),
    ('ST', 'St'),
    ('LUCIANS', 'Lucians'),
    ('SUDANESE', 'Sudanese'),
    ('SURINAMESE', 'Surinamese'),
    ('SWEDES', 'Swedes'),
    ('SWISS', 'Swiss'),
    ('SYRIACS', 'Syriacs'),
    ('SYRIANS', 'Syrians'),
    ('TAJIK', 'Tajik'),
    ('TAIWANESE', 'Taiwanese'),
    ('TANZANIANS', 'Tanzanians'),
    ('THAIS', 'Thais'),
    ('TIBETANS', 'Tibetans'),
    ('TOBAGONIANS', 'Tobagonians'),
    ('TRINIDADIANS', 'Trinidadians'),
    ('TUNISIANS', 'Tunisians'),
    ('TURKS', 'Turks'),
    ('TUVALUANS', 'Tuvaluans'),
    ('UGANDANS', 'Ugandans'),
    ('UKRAINIANS', 'Ukrainians'),
    ('URUGUAYANS', 'Uruguayans'),
    ('UZBEKS', 'Uzbeks'),
    ('VANUATUANS', 'Vanuatuans'),
    ('VENEZUELANS', 'Venezuelans'),
    ('VIETNAMESE', 'Vietnamese'),
    ('WELSH', 'Welsh'),
    ('YEMENIS', 'Yemenis'),
    ('ZAMBIANS', 'Zambians'),
    ('ZIMBABWEANS', 'Zimbabweans'),
    ('ASSYRIANS', 'Assyrians'),
    ('AZERIS', 'Azeris'),
    ('BASQUES', 'Basques'),
    ('BENGALIS', 'Bengalis'),
    ('BERBERS', 'Berbers'),
    ('BOERS', 'Boers'),
    ('BURYATS', 'Buryats'),
    ('CAJUNS', 'Cajuns'),
    ('CATALANS', 'Catalans'),
    ('CELTS', 'Celts'),
    ('CHUVASH', 'Chuvash'),
    ('GREEKS', 'Greeks'),
    ('HAN', 'Han'),
    ('CHINESE', 'Chinese'),
    ('HISPANIC', 'Hispanic'),
    ('AND', 'and'),
    ('LATINO', 'Latino'),
    ('AMERICANS', 'Americans'),
    ('HUTUS', 'Hutus'),
    ('IGBO', 'Igbo'),
    ('INDIGENOUS', 'Indigenous'),
    ('AUSTRALIANS', 'Australians'),
    ('INDIGENOUS', 'Indigenous'),
    ('PEOPLE', 'people'),
    ('OF', 'of'),
    ('THE', 'the'),
    ('AMERICAS', 'Americas'),
    ('FIRST', 'First'),
    ('NATIONS', 'Nations'),
    ('HUAORANI', 'Huaorani'),
    ('PEOPLE', 'people'),
    ('INUIT', 'Inuit'),
    ('CANADIAN', 'Canadian'),
    ('INUIT', 'Inuit'),
    ('GREENLANDIC', 'Greenlandic'),
    ('INUIT', 'Inuit'),
    ('MÉTIS', 'Métis'),
    ('PEOPLE', 'people'),
    ('NATIVE', 'Native'),
    ('AMERICANS', 'Americans'),
    ('JAPANESE', 'Japanese'),
    ('KAREN', 'Karen'),
    ('KODAVAS', 'Kodavas'),
    ('KURDS', 'Kurds'),
    ('MACEDONIANS', 'Macedonians'),
    ('MALAYS', 'Malays'),
    ('MONGOLIANS', 'Mongolians'),
    ('ROMA', 'Roma'),
    ('SAMIS', 'Samis'),
    ('SIKHS', 'Sikhs'),
    ('SILESIANS', 'Silesians'),
    ('SINHALESE', 'Sinhalese'),
    ('SYRIACS', 'Syriacs'),
    ('KANNADIGAS', 'Kannadigas'),
    ('TAMILS', 'Tamils'),
    ('TATARS', 'Tatars'),
    ('TUTSIS', 'Tutsis'),
    ('ZULUS', 'Zulus'),
    

    Edit:

    for languages you can use this:

    file_name = "languages.txt"  #each word on a separate line
    with open(file_name) as f:
    for line in f:
        for word in line:
            print "(\'" + word.decode('utf-8').upper().encode('utf-8') +"\', \'" + word +"\'),"