Django 1.4 を使用しています。管理者の change_list ページのように見える管理者ページにキューを追加したいと思います。私は非常に多くのブログや他のフォーラムを試しましたが、私が望むものは得られませんでした. 次の機能を備えた管理ページにカスタムビューを追加するにはどうすればよいですか?
- 自分のクエリセット
- そこで利用可能なすべての機能を備えた管理変更リストページのように見えるはずです。
models.py
class Broker(models.Model):
user = models.OneToOneField(User)
agency = models.CharField(max_length=100)
urls.py
url(r'^admin/broker_list/$', 'room.admin_views.broker_list'),
url(r'^admin/', include(admin.site.urls)),
admin_views.py
def broker_list(request):
return render_to_response(
"admin/broker_list.html",
{'broker_list' : Broker.objects.filter(user__is_active=False)},
RequestContext(request, {}),
)
broker_list = staff_member_required(broker_list)
broker_list.html
{% extends "admin/base_site.html" %}
{% load admin_urls %}
{% block title %}List of pending agent{% endblock %}
{% block content %}
{{broker_list}}
{% endblock %}
上記のコードを使用すると、リンク /admin/broker_list/ にアクセスしてクエリセットを確認できます。しかし、私は管理者のchagelistページのように生成または拡張する方法がわかりません。
私も Django ModelAdmin の get_urls メソッドにうんざりしていましたが、ドキュメントには my_view が HttpResponse を返さなければならないと書かれていたので、生のオブジェクトしかレンダリングしません。参考までに、以下のコードを共有しました。
admin.py
class ItemAdmin(admin.ModelAdmin):
model = Broker
def admin_list_broker(self, request):
print "yes iam here"
return HttpResponse("Hello!")
#return HttpResponseRedirect(
# reverse("admin:account_agent_changelist",)
#)
def get_urls(self):
from django.conf.urls.defaults import *
urls = super(ItemAdmin, self).get_urls()
my_urls = patterns('',
url(
r'broker_list',
self.admin_site.admin_view(self.admin_list_broker),
name='admin_list_broker',
),
)
print my_urls + urls
return my_urls + urls
admin.site.register(Broker, ItemAdmin)
上記の方法のいずれかで要件を実装するのを手伝ってください。
ありがとう。