私はそれを理解することができました。ありがたいことに、Django では arequest
のGET
dict を置き換えることができます (管理フォームに事前入力するために使用されます)。以下は私のために働いた:
class ArticleAdmin(admin.ModelAdmin):
# ...
def add_view(self, request, form_url='', extra_context=None):
source_id = request.GET.get('source', None)
if source_id is not None:
source = FeedPost.objects.get(id=source_id)
# any extra processing can go here...
g = request.GET.copy()
g.update({
'title': source.title,
'contents': source.description + u"... \n\n[" + source.url + "]",
})
request.GET = g
return super(ArticleAdmin, self).add_view(request, form_url, extra_context)
このようにして、 URL パラメーターsource
からオブジェクトを取得し、必要な操作を行い、フォームに事前入力します。