我想在django admin中创建一个自定义视图,它反映了另一个模型的更改表单。我已经创建了一个自定义模型管理类,并且不知道从哪里开始。我无法找到关于如何创建自定义管理视图的Django 1.8的任何好例子。
Django版本:1.8
class CustomerProductOrderAdmin(admin.ModelAdmin):
review_template = 'admin/onlineordering/order_template.html'
def get_urls(self):
urls = super(CustomerProductOrderAdmin, self).get_urls()
my_urls = patterns('',
(r'\d+/customer_template/$', self.admin_site.admin_view(self.customer_template)),
)
return my_urls + urls
def customer_template(self, request, id):
product_orders = CustomerProductOrder.objects.get(pk=id)
return render_to_response(self.review_template, {
'quantity': 'Quantity: %s' % product_orders.quantity,
}, context_instance=RequestContext(request))
我有一个属于此用户表的客户表。
class Customer(models.Model):
customer = models.ForeignKey(settings.AUTH_USER_MODEL, limit_choices_to={'groups__name': "customers"})
/ app / model / 1 #pk = customer.id
自定义表单将包含此网址
/应用/ customform /
当登录用户转到/ app / customform时,他们不应该从/ app / model / 1看到更改表单。他们不应该看到其他用户更改表单。此外,我想限制对特定用户组的访问。即该组无法查看/ app / model /但可以看到/ app / customform。
答案 0 :(得分:0)
如何向管理页面添加独立模板的示例
在模型类内的model.py文件中添加一个函数
def version_summery(self, ):
batch_d= {}
fy = {}
for br in self.batchresult_set.all():
batch_d[br.name.strip()] = br.__dict__
fy['batch_d'] = batch_d.values()
x = render_to_string('admin/results/result_build_summary.html', fy)
return x
确保urls.py知道如何找到模板'result_build_summary.html'
并在admin.py
中readonly_fields = ( 'version_summery',)
fieldsets = (
('', {
'fields': ( 'version_summery', ),
}),
)