python - Django - 管理员自定义字段显示和行为

标签 python html django django-admin django-widget

让我们想象一下这个模型:

class ScribPart(models.Model):
  name = models.CharField(max_length=50, unique=True)
  text = models.TextField()

我想将特定类附加到字段text 并调用特定的js 文件。这样管理页面就像:

...
<script type="text/javascript" src="/static/js/mymarkup.js"></script>
...
<textarea id="id_text" name="text" class="mymarkup"></textarea>
...

我如何使用小部件和/或自定义管理表单来做到这一点?

最佳答案

要插入 <script>在管理页面中,最简单的事情是:

class ScribPartAdmin(model.ModelAdmin):
    ...
    your normal stuff...
    ...

    class Media:
        js = ('/path/to/your/file.js',)

ModelAdmin media definitions documentation

现在添加 class属性为 textarea我认为最简单的方法是这样的:

from django import forms

class ScribPartAdmin(model.ModelAdmin):
    ...
    your normal stuff...
    ...

    class Meta:
        widgets = {'text': forms.Textarea(attrs={'class': 'mymarkup'})}

Overriding the default widgets documentation

我应该补充一点,这种方法适合一次性使用。如果你想多次重复使用你的字段或 JS,有更好的方法(字段的自定义小部件,如果 JS 与字段完全相关,则指定 JS 文件,扩展模板以在许多地方包含 JS 文件) .

关于python - Django - 管理员自定义字段显示和行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7027752/

相关文章:

python - 为什么我不能在 Django Rest Framework 的 ModelViewSet 上使用 @action 装饰器

python - 提取大字符串的部分

python - SQLAlchemy 过滤器用于不包含数组列中值的行

html - 带排水沟的 CSS 网格布局

html - 删除表格底部的额外空间

python - 嵌入式 pdf 文件未显示在 Django 中

Python Django DRF API 一次性 session / token /通行证身份验证,无需用户名/密码

python - 与 c 扩展交互时,IPython 的行为与 CPython 不同

python - 使用 httplib2 打开 ssl 连接时出错

php - 如何通过一个提交按钮提交两个值?