Справка XFCE Genmon

У меня есть установка https://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin#usage

Но как я добавляю сценарии и запускаю их?

1
задан 6 March 2019 в 02:38

12 ответов

Это должно создать фактический dict? Вы могли обойтись только чем-то, что было похоже на dict?

class DictModelAdaptor():
    def __init__(self, model):
        self.model = model

    def __getitem__(self, key):
        return self.model.objects.get(key=key)

    def __setitem__(self, key, item):
        pair = self.model()
        pair.key = key
        pair.value = item
        pair.save()

    def __contains__(self, key):
        ...

Вы могли затем перенести модель таким образом:

modelDict = DictModelAdaptor(DictModel)
modelDict["name"] = "Bob Jones"

и т.д...

17
ответ дан 1 November 2019 в 00:59

Вы хотите in_bulk метод queryset, который, согласно документам:

Берет список первичного ключа, оценивает и возвращается, словарь, отображающий каждый первичный ключ, оценивают экземпляру объекта с данным идентификатором.

Это берет список идентификаторов, таким образом, необходимо будет получить это сначала через values_list метод:

ids = MyModel.objects.values_list('id', flat=True)
model_dict = MyModel.objects.in_bulk(ids)
16
ответ дан 1 November 2019 в 00:59

Можно использовать python сериализатор:

from django.core import serializers
data = serializers.serialize('python', DictModel.objects.all())
14
ответ дан 1 November 2019 в 00:59

использовать

dict(((m.key, m.value) for m in DictModel.objects.all())

Как предложил Tom Leys, мы не должны получать целый объект, мы можем получить только те значения, в которых мы нуждаемся, например.

dict(((m['key'], m['value']) for m in DictModel.objects.values('key', 'value')))

и если Вам нужны все значения, лучше сохранить целый объект в dict, например.

dict(((m.key, m) for m in DictModel.objects.all())
5
ответ дан 1 November 2019 в 00:59

Можно также полагаться на код django, уже записанный ;).

from django.forms.models import model_to_dict
model_to_dict(instance, fields=[], exclude=[])
213
ответ дан 1 November 2019 в 10:59

dict((x.name, getattr(o, x.name)) for x in o._meta.fields)

6
ответ дан 1 November 2019 в 10:59

Возможно, я пропускаю что-то, но объекты Django имеют __dict__ атрибут, который кажется быть тем, что Вы хотите.

4
ответ дан 1 November 2019 в 10:59

Или были Вы пытающийся сделать что-то как:

def someview(req):
    models = MyModel.objects.all()
    toTuple = lambda field: (getattr(field, 'someatt'), getattr(field, 'someotheratt'))  
    data = dict(map(toTuple,models))
    return render_to_response(template, data)
2
ответ дан 1 November 2019 в 10:59

Для получения карты всех экземпляров в queryset в единственный словарь с указанным образцовым полем как ключ попытайтесь делать это

from django.forms.models import model_to_dict
from myApp.models import myModel

allObjs = myModel.objects.all()
f = {}         # initialise the output
key = 'key'    # one of the fields from myModel

[f.update({x[key]: x}) for x in [model_to_dict(y) for y in allObjs]]
return f
2
ответ дан 1 November 2019 в 10:59

Для получения значений модели в словарь добавьте ниже кода в месте, где u нужен тот словарь

from models import DictModel

activity_map = dict(Plan.objects.values_list('key', 'value'))

, activity_map является словарем, который содержит запрошенную информацию.

2
ответ дан 1 November 2019 в 10:59
user = mymodel.objects.all()
user.values() 

можно также попробовать

user.values_list() # getting as list
2
ответ дан 1 November 2019 в 10:59

(На → щелчка правой кнопкой панели, 'Добавьте Новый Объект' → 'Универсальный Монитор') Затем Вы просто связываетесь с желаемым сценарием через 'команду' в свойствах объекта GenMon. К вашему сведению genmon короток для Универсального Монитора. следуйте за использованием: https://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin#usage

1
ответ дан 7 December 2019 в 15:06

Другие вопросы по тегам:

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