2017-04-03 10 views
0

ユーザーがオブジェクトに保存されている表示情報を編集できるようにしようとしていますが、管理者が編集を承認するまで公開されません。これらの編集内容は、管理者が並べ替えることができるキューに保存されます。たとえば :このCharFieldですがテンプレートに表示されDjangoで編集承認キューを実装する方法

class examplemodel(models.Model): 
    text = models.CharField() 

はどこかに、ユーザーがテキストは、フォームが送信されているのと同じ情報を含むフォームになるせ、リンクをクリックすることができ、に戻って情報を送信しませんデータベースではなく、管理ページで承認されるキューに移動します。ここで私が考えることができる唯一の方法は、editRequestオブジェクトを作成して、別のオブジェクトを作成し、承認されていれば古いオブジェクトを更新する承認機能を持たせることです。どの場合、私はこれを管理ページにどのように結びつけますか?

答えて

2

必要なフィールドを持つApprovalPendingUsersという新しいモデルを作成し、そのモデルのユーザーにForeignKeyを追加することをお勧めします。並べ替えるためにcreated_timelast_modified_timeフィールドを追加することもできます。ユーザーが編集フォームの詳細を送信すると、新しいモデルのすべてがユーザーForeignKeyで保存されます。

#import User Model 
from apps.users.models import BaseUserModel 

class ApprovalPendingUsersModel (Models.Model): 
    created_by = models.ForeignKey(BaseUserModel) 
    # Other fields. 

adminのリストビューを作成し、表示する新しいモデルのすべての行を戻します。承認ボタン上の管理クリックはApprovalPendingUsersModelBaseUserModel詳細を交換し、ApprovalPendingUsersModelからその行を削除

class ApprovalPendingUsersListView(ListView): 
    # template_name and context_object_name 

    def get_queryset(self): 
     return ApprovalPendingUsersModel.objects.all() 

を使用すると、複数の更新要求を与えるときに多くのApprovalPendingUsersModel行の作成を避けることができます。

+0

ありがとう!私が何をしているのかと思ったことは、ちょうどそこに何かdjangoの機能があるかどうかを見たいと思っていました – Peter

関連する問題