我一直在玩Django的管理页面,并陷入困境,似乎无法在文档中找到解决方案。我定义了三种不同的模型:位置,餐厅特色和员工。这三种模型都是相互关联的。这个问题是特定于我的员工型号:在list_filter启用后新建list_display Django 1.10
class Employee(models.Model):
restaurant = models.ForeignKey(RestaurantFeature, on_delete=models.CASCADE)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
age = models.IntegerField()
address = models.CharField(max_length=80)
prior_experience = models.BooleanField(default=False)
hour_contract = models.IntegerField()
hourly_salary = models.FloatField()
def _get_full_name(self):
return '%s %s' % (self.first_name, self.last_name)
full_name = property(_get_full_name)
def __str__(self):
return "%s" % self.full_name
class Meta:
verbose_name_plural = "Employees"
自定义管理布局,我有:
class EmployeeAdmin(admin.ModelAdmin):
list_display = ('full_name','restaurant','prior_experience',)
list_filter = ('restaurant',)
search_fields = ('first_name', 'last_name',)
admin.site.register(Employee, EmployeeAdmin)
这个伟大的工程!定义的显示器工作,过滤器也一样。我想要的是:一旦启用restaurant filter
,新的list_display
!这样可以在需要时提供更详细的信息。
如何定义新的list_display
一旦list_filter
被应用?
MORE CLEARER: list_display现在定义了全名,餐厅和以前的经验。一旦餐厅过滤器被应用,我希望这些变量变成全名,餐厅,以前的经验,小时合同和小时工资!例如,所有餐厅的所有员工都会显示一些一般信息,但是一旦选择了“麦当劳”,麦当劳员工就会获得更详细的信息。
这个不清楚,恐怕。 “餐馆过滤器启用后,新的list_display”究竟是什么意思?新的方式是什么? –
对不起。 'list_display'现在定义了全名,餐厅和以前的经验。一旦餐厅过滤器被应用,我希望这些变量变成全名,餐厅,以前的经验,小时合同和小时工资!例如,所有餐馆的所有员工都会显示一些常规信息,但是一旦选择了“Mc Donalds”,则会为Mc Donalds员工提供更详细的信息。 –