int[] terms = new int[400];
for(int runs = 0; runs < 400; runs++)
{
terms[runs] = value;
}
Нужно ли создавать настоящий диктант? могли бы вы обойтись только чем-то похожим на диктатор?
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"
и т. д.
Вы ищете член Values в QuerySet , который позволяет вам получить список словарей из вашего запроса
Возвращает ValuesQuerySet - QuerySet который оценивается в список словари вместо экземпляра модели объекты. Каждый из этих словарей представляет объект, с соответствующими ключами к именам атрибутов модели объекты.
>>> Blog.objects.values()
[{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}],
>>> Blog.objects.values('id', 'name')
[{'id': 1, 'name': 'Beatles Blog'}]
использование
dict(((m.key, m.value) for m in DictModel.objects.all())
Как было предложено Томом Лейсом, нам не нужно получать весь объект, мы можем получить только те значения, которые нам нужны, например
dict(((m['key'], m['value']) for m in DictModel.objects.values('key', 'value')))
, и если вам нужно все значения, лучше сохранить весь объект в dict, например,
dict(((m.key, m) for m in DictModel.objects.all())
You want the in_bulk
queryset method which, according to the docs:
Takes a list of primary-key values and returns a dictionary mapping each primary-key value to an instance of the object with the given ID.
It takes a list of IDs, so you'll need to get that first via the values_list
method:
ids = MyModel.objects.values_list('id', flat=True)
model_dict = MyModel.objects.in_bulk(ids)
Вы можете использовать сериализатор python
:
from django.core import serializers
data = serializers.serialize('python', DictModel.objects.all())
Вы также можете положиться на уже написанный код django;).
from django.forms.models import model_to_dict
model_to_dict(instance, fields=[], exclude=[])
Или вы пытались сделать что-то вроде:
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)
dict ((x.name, getattr (o, x.name)) для x в o._meta.fields)