Создайте набор запросов django для данных не из базы данных - PullRequest
2 голосов
/ 16 февраля 2011

Я ищу способ создания простой ModelForm с одним выпадающим списком на основе внешнего источника данных.Причина, по которой я хочу, это возможность импортировать данные из внешнего источника через администратора django.

Примером этого может служить модель class BlogPost(models.Model) со многими полями.В «создать новый объект» в django admin это должно быть только одно поле;список постов из внешнего блога.Когда пользователь выбирает сообщение в раскрывающемся списке и сохраняет объект, метод сохранения BlogPost выбирает все соответствующие данные из канала, устанавливает соответствующие поля в экземпляре BlogPost и сохраняет его в базе данных.

Я застрял в части «извлечение внешних данных и представление их в админке django».Из того, что я могу сказать, лучший способ сделать это, и при этом использовать стандартные компоненты django, можно заключить в том, чтобы обернуть внешний канал в «не-базу данных, пользовательский набор запросов» и передать его forms.ModelChoiceField?Есть ли простой способ сделать это?

(на самом деле я не создаю Stealer для блога. У меня есть видеоархив, полностью отделенный от сайта, который я создаю, и мне нужен пользовательудобный способ импортировать из него данные)

1 Ответ

2 голосов
/ 16 февраля 2011

ModelChoiceField специально для наборов запросов.Если вы хотите использовать не набор запросов, почему бы не использовать ChoiceField для любого списка любых объектов?http://docs.djangoproject.com/en/dev/ref/forms/fields/#choicefield

Или я что-то здесь упускаю?

mychoices = forms.ChoiceField(choices=[('external_post', 'External Post'), ('external_post2', 'External Post 2')])

Вы можете заполнить список из любого источника, который пожелаете!

...