Git Product home page Git Product logo

django-countries's People

Contributors

adamchainz avatar bkabrda avatar bounder avatar drmeers avatar fk-currenxie avatar foutrelis avatar housain-maina avatar hugorodgerbrown avatar inirudebwoy avatar interdist avatar jedie avatar jonashaag avatar ksysctl avatar matthiask avatar michael-k avatar mng-dev-ai avatar mo-mughrabi avatar omarithawi avatar pablocastellano avatar philgyford avatar pzrq avatar qcoumes avatar richardarpanet avatar rubindersinghsandhu avatar schinckel avatar simonpanay avatar smileychris avatar technickai avatar toofishes avatar vinnyrose avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

django-countries's Issues

Capitalization and diacritics in some country names

While comparing the names of countries in the lists with those from iso-codes (http://packages.debian.org/iso-codes) I found some minor differences that should be fixed.

The attached patch fixes all differences that I could find and for the record, those were my references:


Localized country names not showing

In my Django admin back end the country names are showing in English, while the admin interface itself is shown in Dutch, like I configured.

It's probably a misconfiguration on my part, or I did not perform some action needed.

I installed django-countries using pip with Django 1.3.1 and my settings file contains the following:

#!python

LANGUAGES = [('nl', 'NL')]
LANGUAGE_CODE = 'nl'
TRANSMETA_DEFAULT_LANGUAGE = 'nl'
DEFAULT_LANGUAGE = 0

and django.core.context_processors.i18n is enabled.

Does anyone have some pointers on what I might try next?


new translations from transifex..

Would it be possible to pull a new list of translations from Transifex? I've just finished translating the dutch countries for instance and i see quite a few other languages also got new translations.

Tests fail

I have added the django-countries app to my project and am attempting to run the tests, but they fail when executing the syncdb command from the utils/tests.py file because the tables it's trying to create are already present. My project uses django-south to handle db migrations. Here is a stack dump of one of the test failures.

#!python

======================================================================
ERROR: test_unicode (django_countries.tests.TestCountryField)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/django_countries-1.0.5-py2.6.egg/django_countries/utils/tests.py", line 22, in setUp
    call_command('syncdb', verbosity=0, interactive=False)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/Django-1.2.4-py2.6.egg/django/core/management/__init__.py", line 166, in call_command
    return klass.execute(*args, **defaults)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/Django-1.2.4-py2.6.egg/django/core/management/base.py", line 220, in execute
    output = self.handle(*args, **options)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/Django-1.2.4-py2.6.egg/django/core/management/base.py", line 351, in handle
    return self.handle_noargs(**options)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/management/commands/syncdb.py", line 99, in handle_noargs
    management.call_command('migrate', **options)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/Django-1.2.4-py2.6.egg/django/core/management/__init__.py", line 166, in call_command
    return klass.execute(*args, **defaults)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/Django-1.2.4-py2.6.egg/django/core/management/base.py", line 220, in execute
    output = self.handle(*args, **options)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/management/commands/migrate.py", line 105, in handle
    ignore_ghosts = ignore_ghosts,
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/__init__.py", line 191, in migrate_app
    success = migrator.migrate_many(target, workplan, database)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 221, in migrate_many
    result = migrator.__class__.migrate_many(migrator, target, migrations, database)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 292, in migrate_many
    result = self.migrate(migration, database)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 125, in migrate
    result = self.run(migration)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 99, in run
    return self.run_migration(migration)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 81, in run_migration
    migration_function()
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 57, in <lambda>
    return (lambda: direction(orm))
  File "/home/vagrant/sg/simplegeo.com/balboa/apps/website/migrations/0001_initial.py", line 17, in forwards
    ('public', self.gf('django.db.models.fields.BooleanField')(default=False)),
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/db/generic.py", line 226, in create_table
    ', '.join([col for col in columns if col]),
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/db/generic.py", line 150, in execute
    cursor.execute(sql, params)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/Django-1.2.4-py2.6.egg/django/db/backends/mysql/base.py", line 86, in execute
    return self.cursor.execute(query, args)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/MySQL_python-1.2.3-py2.6-linux-i686.egg/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/home/vagrant/sg/simplegeo.com/lib/python2.6/site-packages/MySQL_python-1.2.3-py2.6-linux-i686.egg/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
OperationalError: (1050, "Table 'website_license' already exists")

Cannot import with django 1.3a1

I am importing CountryField as specified in the README in my models file. When running the test server, Django does not have a problem. Similarly, running a shell through manage.py, executing the import is no problem. However, when running through apache+mod_wsgi a "cannot import name CountryField" exception is thrown. Is this an issue with django-countries or with django? I have not tested this on django 1.2 so it could be an issue with the alpha.


Running the tests

Hi, could you please give me a clue on how you run tests? I was first trying to run the tests only from the source with no luck (just by nosetests). Then I created a django project and added "django_countries" to installed apps and ran manage.py test, but no tests were found and run.
I'm using Django 1.4.
Thanks!


Countries on Form ?

How to create a form with countries ?

country = forms.ModelChoiceField( queryset = ?)

or

country = CountryField ?

Best way to include only select countries?

I'd like to restrict the list of countries for a model to maybe 10 or so. Is there a more elegant way than to set the vast majority to None in my override in settings.py?

Slow admin loading

I have a field of type CountryField. In the admin interface, when I use this field in the list display, it's incredibly slow to load when there are ~100 rows.

I've tried using list_select_related = ('country',), or even list_select_related = True, but there is no speedup (DDT doesn't report any extra queries with or without this - 5 in each case). However, there is significant speed increase when I use a filter (reducing the number of rows) or if I remove this field from the list display interface.

Is there any way to speed this up/cache the results?

Upload new translations

Hi,
I complete french translation from transifex and I saw last update on github was 5-7 months ago.
There's is no way to automatize download and push ? I have found this page : http://docs.transifex.com/developer/client/pull
Can you push all translation on repo ?

And I have not found how can I be a Rewiever on transifex.

Thank you ;)

'name' attribute not searchable from admin (lazy translation?)

When enabling search in the Django admin for a model with a CountryField, it seems that the resulting query cannot search correctly.

# models.py
class MyModel(models.Model):
    origin = CountryField(blank=True)
    author = models.CharField(max_length=50)

# admin.py
class ExploitKitAdmin(AddSubmitterModelAdmin):
    search_fields = ('origin__name', 'author')

Trying to search the respective field from the admin raises exception:

FieldError at /admin/threatfacts/malwarefamily/
Join on field 'origin' not permitted. Did you misspell 'name' for the lookup type?

I don't know the cause of the issue for certain. If I'm guessing I think it may be that the field does not return data but a lazy translation:

x = MyModel.objects.get(pk=1)
x.origin
Country(code=u'RU', flag_url='flags/{code}.gif')

x.origin.code
u'RU'

x.origin.name
<django.utils.functional.__proxy__ at 0x106614b90>

unicode(x.origin.name)
u'Russian Federation'

I think this is rooted in not being able to filter() on the field:

x = MyModel.objects.filter(origin__name="Russian Federation")
FieldError: Join on field 'origin' not permitted. Did you misspell 'name' for the lookup type?

Is this a known issue with a workaround/specific configuration needed? Am I just missing a clue on how to do model searches correctly? Or is this way off base?

Missing source file or documentation piece

Hello,
I've decided to use django-countries, added it to my django project, but after adding dango_countries to the INSTALLED_APPS, my application breaks with an error "Can't import module settings".

File fields.py starts with the following import:
from django_countries import settings

but there's no settings.py within the django_countries source code.


Schema rules needed for django-south

#!python

 ! Cannot freeze field 'app.country'

 ! South cannot introspect some fields; this is probably because they are custom
 ! fields. If they worked in 0.6 or below, this is because we have removed the
 ! models parser (it often broke things).
 ! To fix this, read http://south.aeracode.org/wiki/MyFieldsDontWork

Having the schema rules in place would be nice when working with soutch.


Adding list of languages

Hi,
I think it would be great if this app also have a languages list (and LanguageField). It's highly related to countries and very often when you need list of countries, you would also need languages list. Moreover, for time being, django don't have good app with translated list of languages (at least I could not find one). Easy to parse registry of languages can be found at iana.org.

Description for Taiwan

The issue for the name of Taiwan stated in issue #16 still exists.
As discussed there, most Taiwanese don't like it (being called a province of China) and consider it very offensive, despite the fact we can't change nor choose our history which led us to the difficult situation. In addition, stating Taiwan as part of China is also considered political biased. Therefore it is more neutral to state Taiwan simply as "Taiwan".
Please kindly change it, as this library is used widely in many products, and hence it would be very nice if the users are satisfied when they are choosing their nationality in the form :)

Django 1.7RC2 regression for ModelForm with django-countries field

I'm using Django 1.7RC2. I have a django-countries Country field in a model. When I try to create to a ModelForm of this model, the following error is thrown:

TypeError: Error when calling the metaclass bases
    'Countries' object does not support indexing

How to reproduce:

  1. Install Django 1.7RC2.
  2. Create a model with a Country() field.
  3. Create a ModelForm that references to this model.
  4. Initialize the form.

Use pycountries for data?

There is http://pypi.python.org/pypi/pycountry which provides convenient access to several ISO country databases. Would a pull-request which changes the data backend to use this package be accepted?

My motivation is that the Debian package of django-countries, which is already patched to use the system ISO database files, would then be closer to upstream again. pycountries in Debian already uses the system ISO XML files.

django-countries is broken on 1.7b1, with fix

Hi,

In Django 1.7, it became illegal to use ugettext at module import time as the app registry is not ready yet. Django Countries uses ugettext_lazy, so you'd think it would be OK here. However, at line 30 in django_countries/init.py:

                if name:
                    self._countries.append((code, name))

name in this context is a lazy translated string. By testing it for truthiness, it has to be translated. Therefore the module fails to import with "RuntimeError: App registry isn't ready yet"

I'm not sure exactly what use case the condition was put in to support, but either of these changes fixes the issue.

1: removing the condition

                self._countries.append((code, name))

2: Using an identity comparison

                if name is not None:
                    self._countries.append((code, name))

Cheers,

Bernie :o)

Can't save CountryField with None value

I have a model with a CountryField that has allowed null values. However, when creating a new instance of that model, an empty string is saved into database instead, causing unique constraints to fail. It seems that problem is in get_prep_value method, because it receives a Country object with code attribute set to None instead of primitive None value.

Example model:

class Failing(models.Model):
    country = CountryField(null=True, unique=True)
    count = models.PositiveIntegerField(default=0)

Failing code:

a, created1 = Failing.objects.get_or_create(country=None)
b, created2 = Failing.objects.get_or_create(country=None)

assert a == b
assert created1 is True
assert created2 is False

Ordering of the country list wrong if locale is not english

If I switch into French, the list of countries do appear in French, but the order is somewhat wrong. As if, it took the original English ordering of the names, and just translated it. Hence United States in French is Etats-Unis, but since United States is within the last countries in English language, Etats-Unis will appear within the last one when in French, whereas it should be in French. Any ideas how to change that behaviour?


Kosovo in List

Can you add Kosovo to the list?
They are recognized by the US as a country:

http://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/CountriesRecognizingKosovo.svg/1000px-CountriesRecognizingKosovo.svg.png

Or what would be the best way for doing it myself?
Just editing the static list seems no the right way to do it, since it breaks future updates.

Thanks!


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.