私はそれを把握することができました。 add_view
メソッド全体をオーバーライドすることは、あまりにも混乱しているようでした。ありがたいことに、Djangoはrequest
のGET
dict(adminフォームをあらかじめ入力するために使用する)を置き換えることができます。以下の私の仕事:
class ArticleAdmin(admin.ModelAdmin):
// ...
def add_view(self, request, form_url='', extra_context=None):
source_id = request.GET.get('source',None)
if source_id != 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内のパラメータから「ソース」オブジェクトを取得し、私はそれから必要な値をロード、私は彼らと一緒にやりたい、と事前移入します形。
これは非常に役に立ちます! – abidibo