在Django管理站点中,我很难找到覆盖自定义html并将其添加到编辑/添加模型表单的最佳方法
以下是此处涉及的两个模型:
class Icon(models.Model):
name = models.CharField(max_length=100, null=False)
style = models.CharField(max_length=10, choices=STYLE_CHOICES, null=False)
retired = models.BooleanField(default=False)
def delete(self):
self.retired = True
self.save()
objects = NotRetiredManager()
objects_deleted = DeletedManager()
def __str__(self):
return self.name
class Workbook(models.Model):
client = models.ForeignKey(Client, on_delete=models.SET_NULL, null=True)
icon = models.ForeignKey(Icon, on_delete=models.SET_NULL, null=True, blank=True)
name = models.CharField(max_length=100)
workbookLink = models.CharField(max_length=1000)
retired = models.BooleanField(default=False)
def delete(self):
self.retired = True
self.save()
objects = NotRetiredManager()
objects_deleted = DeletedManager()
def __str__(self):
return self.name
以下是上述模型的替代管理模型:
class BaseAdmin(AdminImageMixin, admin.ModelAdmin):
def delete_queryset(self, request, queryset):
for obj in queryset:
obj.delete()
@admin.register(Workbook)
class WorkbookAdmin(BaseAdmin):
list_display = ("name", "client")
list_filter = (NameFilter, ClientNameFilter)
ordering = ("name", )
@admin.register(Icon)
class IconAdmin(BaseAdmin):
fields = ("name", "style", "icon_display")
list_display = ("icon_display", "name", "style" )
list_display_links = ("icon_display", "name")
list_filter = (NameFilter, )
ordering = ("name", )
def icon_display(self, obj):
return mark_safe(f'<i class="{obj.style}{obj.name}"></i>')
readonly_fields = ["icon_display"]
我希望第二个屏幕截图中的下拉列表可以自定义,类似于第一个屏幕截图中的“图标显示”列,以便用户可以从图标的图形列表中进行选择,而不是从包含图标名称的默认choicefield表单中进行选择
我研究了Django文档以及类似的问题,比如这个Similar Stack Overflow Question;然而,我还没有完全理解实现这种东西的正确方法
我希望我提供的关于我的应用程序的信息是有用的。请让我知道,如果你想让我提供任何额外的信息,或添加任何澄清
目前没有回答
相关问题 更多 >
编程相关推荐