Способ, которым я достиг этого, был следующим образом
<ReferenceInput label="Country" source='country.id' reference="Country" sort={{ field: 'name', order: 'ASC' }} alwaysOn>
<SelectInput optionText="name" optionValue="id" allowEmpty />
</ReferenceInput>
Мне нужно было загрузить свой выбор из этой базы данных, хотя, однако, концепция та же самая ... я подозреваю, что вы используете для источника неправильно .. Посмотрите в инструментах редукционного устройства .. в состоянии -> форма -> запись-форма -> значения, и вы должны увидеть что-то вроде status.id, который вы должны использовать вместо источника .. У меня есть тот же тип объекта в моей форме страны {id: 2} ... но это не то, что вы используете, чтобы получить ввод, чтобы показать ваше существующее значение ...
Ваше решение может быть таким же простым, как вызов значения diff в источнике, но вы будете знать, что это должно быть, посмотрев в состояние {status: 0} должен иметь что-то перед ним в состоянии, например что-то -> {status: 0}
You can make your class object iterable with a simple metaclass.
class IterRegistry(type):
def __iter__(cls):
return iter(cls._registry)
class Person(object):
__metaclass__ = IterRegistry
_registry = []
def __init__(self, name):
self._registry.append(self)
self.name = name
(I have also changed __registry
to _registry
to make it easier to access from the metaclass).
Затем
>>> p = Person('John')
>>> p2 = Person('Mary')
>>> for personobject in Person:
... print personobject
...
<person.Person object at 0x70410>
<person.Person object at 0x70250>
Во-первых, не используйте двойные __
имена. Они зарезервированы для использования Python. Если вы хотите, чтобы «личное» использовало single _
.
Во-вторых, сделайте все как можно проще. Не тратьте много времени и сил на что-то сложное. Это простая проблема, сделайте код максимально простым, чтобы выполнить работу.
class Person(object):
_registry = []
def __init__(self, name):
self._registry.append(self)
self.name = name
for p in Person._registry:
print p
you can do it with:
for item in Person.__registry:
print(item)