モデルに次のような作成者フィールドがあるブログアプリを作成しました。
author = models.ForeignKey(User)
追加された投稿をログに記録された名のユーザーに取得するために、djangoadminのデフォルトの追加ビューを変更しようとしています。どのように?こちらです:
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'author':
kwargs['initial'] = request.user.id
return db_field.formfield(**kwargs)
return super(PostAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
さて、追加ビューでは、作成者フィールドに対応する選択入力にユーザー名が表示されます。この選択では、ユーザー名フィールドではなく、first_name+last_nameフィールドが表示されます。そして最後に、このタスクに成功したら、この選択を非表示にします。ログに記録されたユーザーは、ブログにエントリを送信するユーザーを変更してはなりません。
私はこれに数時間取り組んできましたが、成功しませんでした。助けてください!
たくさんの仲間に感謝します。