Django Djangocitieslight与中东国家

2024-09-28 22:35:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我与Django的一个项目,使用GeoIP和Django城市光。你知道吗

我们使用它作为项目所在位置的展示页面。你知道吗

因此,您可以按类别或按区域筛选这些项目。你知道吗

北美、亚洲、欧洲。。你知道吗

而且效果很好!你知道吗

但问题是,我被要求加入中东地区。你知道吗

这是我的密码视图.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]

如你所见,我只是简单地添加了中东。看来没有更多的治疗了。你知道吗

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

如果我为这个项目选择埃及,它将显示为非洲地区过滤器。你知道吗

但它不会出现在中东。你知道吗

在我的心里型号.py,下面是管理区域过滤器创建的行:

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

所以我想我应该亲手加上哪个国家在中东?你知道吗

但由于django cities light的数据是从地理名称中提取出来的,这就很奇怪了。而地名似乎也能识别中东。你知道吗

有人知道这件事吗?我在这里肯定迷路了。你知道吗


Tags: 项目djangonamepyselffalse区域required