为非数据库数据创建django查询集

为非数据库数据创建django查询集,django,django-admin,external,feed,Django,Django Admin,External,Feed,我正在寻找一种方法来创建一个简单的ModelForm,其中包含一个基于外部数据提要的下拉列表。我希望这样做的原因是能够通过django admin从外部源导入数据 这方面的一个例子可以是带有许多字段的model类BlogPost(models.model)。在django admin中的“创建新对象”中,它应该只是一个字段;来自外部博客的帖子列表。当用户在下拉列表中选择一篇文章并保存对象时,BlogPost的保存方法从提要中获取所有相关数据,在BlogPost实例中设置适当的字段并将其保存到数据

我正在寻找一种方法来创建一个简单的ModelForm,其中包含一个基于外部数据提要的下拉列表。我希望这样做的原因是能够通过django admin从外部源导入数据

这方面的一个例子可以是带有许多字段的model
类BlogPost(models.model)
。在django admin中的“创建新对象”中,它应该只是一个字段;来自外部博客的帖子列表。当用户在下拉列表中选择一篇文章并保存对象时,
BlogPost
的保存方法从提要中获取所有相关数据,在BlogPost实例中设置适当的字段并将其保存到数据库

我被困在“获取外部数据并在django admin中显示”部分。据我所知,要做到这一点,并且仍然能够使用django的标准组件,最好的方法是将外部提要包装在一个“非数据库、自定义查询集”中,并将其传递给一个
forms.modelcoocefield
?有没有一个简单的方法可以做到这一点


(我实际上并不是在创建博客帖子窃取者。我有一个视频存档后端,它与我正在创建的网站完全分离,我需要一种用户友好的方式从中导入数据)

ModelChoiceField专门用于查询集。如果要使用非查询集,为什么不使用用于任何对象列表的
ChoiceField

还是我在这里遗漏了什么

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

您可以随意从任何来源填充列表

我想我可以使用ChoiceField而不是ModelChoiceField,只要每次呈现表单时都对值求值。如果我说ChoiseField(choices=foo()),那么foo将只计算一次,并且我无法为choices传递函数引用ChoiseField(choice=foo)。解决方案是可用的:)是的,为任何动态表单内容重写init