我有2个型号,Car and Driver:
class Driver(models.Model):
name = models.TextField(max_length=50)
diverText = models.TextField(max_length=300)
car = models.ForeignKey(Car, default="", null=True, blank=True)
class Car(models.Model):
name = models.TextField(max_length=300)
model = models.TextField(max_length=300)
在我的Django管理员中,我添加了一个动作,向我显示下拉列表中的所有车辆列表,这样我就可以批量分配给特定车辆的车辆:
def create_action(car):
def action(modeladmin, request, queryset): queryset.update(car=car)
name = "mark_%s" % (car.name,)
return name, (action, name,format(car.name +" "+ car.model ,))
class DriverAdmin(admin.ModelAdmin):
list_display = ('driver_name', 'driverText', 'car')
def get_actions(self, request):
return dict(create_action(q) for q in Car.objects.all())
def driver_name(self, instance):
return instance.driver.name
admin.site.register(Driver, DriverAdmin)
问题: 我希望能够删除管理员中的一个或多个驱动程序,但是当我添加上述操作时,默认删除选项将从选择框中消失。如果在覆盖方法中添加删除操作,则assign action将再次消失。我尝试了几种方法来添加它,但没有运气。我如何保留这两种方法?
答案 0 :(得分:0)
你试过这个吗?
def get_actions(self, request):
actions = super(DriverAdmin, self).get_actions(request)
return actions, dict(create_action(q) for q in Car.objects.all())