Получить список всех установленных приложений в Django и их атрибутов

Некоторые из предыдущих ответов не верны. Они работают для других виджетов и представлений, но документация для виджета Spinner четко гласит:

Вращатель не поддерживает события щелчка элемента. Вызов этого метода вызовет исключение.

Лучше использовать OnItemSelectedListener () вместо:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView parentView, View selectedItemView, int position, long id) {
        // your code here
    }

    @Override
    public void onNothingSelected(AdapterView parentView) {
        // your code here
    }

});

Это работает для меня.

Обратите внимание, что метод onItemSelected также вызывается во время построения представления, поэтому вы можете рассмотреть возможность помещения его в вызов метода onCreate().

38
задан Ciro Santilli 新疆改造中心法轮功六四事件 14 May 2016 в 09:29
поделиться

1 ответ

Работы над Django 1.11 + (я работаю над Django 2.2)

from django.conf import settings
from django.apps import apps

# get complete list of all apps
list_of_apps = [apps.get_app_config(app_name.split('.')[-1]) \
                for app_name in settings.INSTALLED_APPS]
# app_name.split('.')[-1] we need, because some system apps has dots in name
# like 'django.contrib.admin', and app_label is 'admin'

# get list of models for one specific app. For example first app in list_of_apps
models_list = [model for name, model in list_of_apps[0].models.items() \
               if not model._meta.auto_created]
# we outfiltered auto_created models, because they are not in models.py
# and had been created automatically by Django
0
ответ дан 27 November 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: