我有一个简单的Django模型,允许更新轮播滑块中的特定项目。我希望能够在管理员中一次编辑这些项目的所有字段。
从概览中编辑它们会更加方便,而不必单独单击每个对象然后编辑它的字段。
以下是“models.py”中的模型:
def validate_only_three_instances(obj):
model = obj.__class__
# make sure of the correct quantity and allow re-saving existing objects
if (model.objects.count() > 2 and
model.objects.filter(id=obj.id).exists() == False):
raise ValidationError("only 3 %ss can be created" % model.__name__)
class Slider(models.Model):
slider_title = models.CharField(max_length=20)
slider_text = models.TextField(max_length=200)
slider_order = models.PositiveSmallIntegerField(
default=1, blank=True, null=True, choices=[(1, 'first'),
(2, 'middle'), (3, 'last')])
def clean(self):
validate_only_three_instances(self)
def __str__(self):
return self.slider_title
这是来自我的“admin.py”:
class SliderAdmin(admin.ModelAdmin):
# remove "add" button
def has_add_permission(self, request):
return False
fieldsets = [
(None, {'fields': ['slider_title']}),
(None, {'fields': ['slider_text']}),
(None, {'fields': ['slider_order']}),
]
list_display = ('slider_title', 'slider_text', 'slider_order', )