django django-cities-light与中东国家无关

时间:2015-12-02 18:03:51

标签: python django

我正在与Django合作,使用GeoIP和django-cities-light。

我们将它用于项目所在的展厅页面。

因此,您可以按类别或按地区过滤这些项目。

北美,亚洲,欧洲..

它运作良好!

但问题是,我被要求添加中东地区。

这是来自陈列室应用程序的views.py中的代码:

class CategoriesRegionsFilterForm(forms.Form):
REGIONS_CHOICES = (
    ('EU', _('Europe')),
    ('NA', _('North America')),
    ('AS', _('Asia')),
    ('SA', _('South America')),
    ('AF', _('Africa')),
    ('OC', _('Oceania')),
    ('ME', _('Middle East')),
)

categories = forms.MultipleChoiceField(label=_('Categories'),
                                       required=False,
                                       widget=forms.widgets.CheckboxSelectMultiple)
regions = forms.MultipleChoiceField(label=_('Regions'),
                                    required=False,
                                    widget=forms.widgets.CheckboxSelectMultiple,
                                    choices=REGIONS_CHOICES)
first_object = forms.IntegerField(required=False, initial=0)

def __init__(self, *args, **kwargs):
    self.request = kwargs.pop('request', None)
    super(CategoriesRegionsFilterForm, self).__init__(*args, **kwargs)
    categories_qs = ProjectCategory.objects.active_translations(get_language())
    self.fields['categories'].choices = [(category.pk, category.name)
                                         for category in categories_qs]

如你所见,我只是添加了中东。似乎没有更多的治疗方法了。

但在网站上,会发生什么: 当我在伊朗创建一个测试项目时 - 例如 - 它将显示为亚洲地区。永远不会出现在中东。

如果我为此项目选择埃及,它将显示为非洲区域过滤器。

但它不会出现在中东。

在我的model.py中,以下是管理区域过滤器创建的行:

    regions = models.ManyToManyField(Country, verbose_name=_('Country of the project'),
                                 blank=True, null=True,
                                 related_name='regions_showroom_project')

所以我似乎应该手动添加哪个国家在中东?

但是,因为django-cities-light数据来自GeoNames,所以很奇怪。 GeoNames似乎认识到了中东。

有没有人对此有所了解?我绝对迷失在这里。

0 个答案:

没有答案