Django 内联-允许添加禁用编辑

2024-01-14

你好。我在阅读以下问题后提出这个问题:问题_1 https://stackoverflow.com/q/2951781/1095090 and 问题2 https://stackoverflow.com/q/9504371。 Question_1 没有任何合适的答案,Question_2 有替代解决方案,但不是完美的解决方案。

这里我有两个模型和他们的管理员。

模型.py

class TaskList(models.Model):
    task_name      = models.CharField(max_length = 255, unique = True)
    description    = models.TextField()
    assignee_role  = models.ForeignKey(Group, related_name = "assignee_roles")
    assignee_name  = models.ForeignKey(User, related_name = "assignee_names")

    def __unicode__(self):
        return "%s" % (self.task_name)

class TaskComments(models.Model):
    tasklist = models.ForeignKey(TaskList)
    time     = models.DateTimeField(null = True, blank = True)
    comment  = models.TextField()

    def __unicode__(self):
        return ""

    def save(self, *args, **kwargs):
        self.time = datetime.datetime.now()
        super(TaskComments, self).save(*args, **kwargs)

admin.py

class TaskCommentsInlineAdmin(admin.TabularInline):
    model           = TaskComments
    can_delete      = False

class TaskListAdmin(admin.ModelAdmin):
    inlines      = [TaskCommentsInlineAdmin, ]

    def add_view(self, request, form_url = '', extra_context = None):
        self.readonly_fields = ()
        return super(TaskListAdmin, self).add_view(request, form_url, extra_context)

    def change_view(self, request, form_url = '', extra_context = None):
        self.readonly_fields = ('task_name', 'description', )
        return super(TaskListAdmin, self).change_view(request, form_url, extra_context)

这里是模型任务评论被用作内联TaskList.

场景1

我想要实现的是:

添加任务注释时

  • 隐藏“时间”字段并在后端更新它。
  • 能够输入“评论”并保存。

保存评论后打开时

  • 对于已添加的评论,“时间”和“评论”字段都应该可见且只读。
  • 能够如上所述添加新评论。

场景2

  • 与之前的场景相同。
  • 唯一的补充是,评论对于添加它的用户来说应该是可编辑的,对于所有其他用户来说应该是只读的。 (我可以更新并获取添加评论的用户)。

这些是我想要实现的目标。我尝试过使用add_view and 更改视图在管理中。但它们不适用于内联。请提供一个解决方案来实现这些目标。提前致谢。


您必须使用自定义版本 InlineAdmin,它使用以下类的自定义版本

  • 内联模型管理
  • 基本内联表单集

您可以在InlineModelAdmin的自定义版本上添加自己的add_view和change_view

  • 检测记录的所有者(以允许编辑)
  • 显示时间字段

您可以增强 BaseInlineFormSet 来控制所有运行时方面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 内联-允许添加禁用编辑 的相关文章

随机推荐

  • 用 XML 描述的 Java GUI

    我的公司目前正在评估 Java FAT 客户端的开发 它应该支持动态 GUI 并在服务器端具有尽可能多的逻辑 因此 我们想到了将屏幕作为 XML 发送到 FAT 客户端 将其显示给用户 并将输入的类似于 html 表单 的数据以如下结构发送
  • ICSharpCode.TextEditor 垂直滚动

    是否可以在 ICSharpCode TextEditor 中配置垂直滚动 以便默认情况下没有垂直滚动条可见 并且仅当有人键入大量行 超出此控件的当前高度 时 才会自动出现垂直滚动条 如果是 怎么办 自己添加功能很容易 1 进入命名空间ICS
  • TensorFlow `conv2d transpose()` 操作有什么作用?

    的文档conv2d transpose 操作没有清楚地解释它的作用 conv2d 的转置 此操作有时称为 反卷积 反卷积网络 http www matthewzeiler com pubs cvpr2010 cvpr2010 pdf 但实际
  • WinRT - 加载数据,同时保持 UI 响应

    我正在开发一个 Windows Metro 应用程序 但遇到了 UI 无响应的问题 据我所知 原因如下
  • 如何更改 Rterm.exe 上的行长度

    我在用R 2 15 2 on windows XP 我以前用过Rgui exe但它缺乏我喜欢使用的 UNIX 标准CTRL R lt gt backward research and CTRL U lt gt erase line 如果我错
  • 添加图层时,Mapbox 样式在缩放时发生变化/中断

    我有一个 mapbox 地图 使用 Outdoor v9 样式初始化 尝试了其他样式 相同的行为 当我向地图添加图层 标记或 geojson 源并缩放地图时 样式会发生变化或中断 我不确定是哪一个 This is the map befor
  • 如何将项目插入到列表框中的字母顺序位置?

    我开发了一个网页 其中显示从数据库获取的列表框项目 我动态地向其中添加了一些项目 它添加到列表框的末尾 因此我想在添加项目后对列表框项目进行排序 我试过Arraylist用于排序 但它不起作用 我正在寻找一种不需要比较器类 ArrayLis
  • PHP 地址的纬度经度

    我的网站上有一个表单 用户可以在其中输入某个地点的地址 当他们提交表单时 我将此位置转换为纬度 经度并将其存储在 MySQL 数据库中 我正在使用 Google 的地理编码服务进行此转换 问题是我找不到类或服务来将该纬度 经度转换回地址 据
  • 仅将图像作为 UITabBarItem

    我只想有一个图标作为 UITabBarItem 而不是下面的文本 我想知道这是否可能 如果可以 如何实现 TIA 删除标题 与检查员的简单方法 选择您的 TabbarItem In 职衔 职位更改为自定义偏移 将垂直设置为 100 Done
  • 如何在haskell中编写递归函数

    我如何在 Haskell 中编写一个函数 它接受一个列表和一个数字 然后删除所有大于该数字的元素并返回列表 删除 5 4 3 9 1 5 应返回 5 4 3 1 我编写了以下方法 当它达到大于给定数字时 该方法会变成无限循环 我要退出 5
  • Android 在 vi​​ewpager 中单击转到第一个片段后返回到同一片段

    我开发了一个应用程序 其中我使用片段查看寻呼机 我使用片段类将一个页面移动到另一个页面 在第二个片段类中 我有一个按钮返回 我编写编码以通过片段直接移动到第一个片段 替换 但替换第一个片段后 我不会将寻呼机页面滚动到另一个片段 这意味着当我
  • 获取未捕获的参考错误:Button1_Click 未定义

    假设我这里有一个aspx代码
  • 如何保存/重定向 Laravel 5 Artisan 命令的输出?

    我已经尝试过该方法此处描述 https stackoverflow com questions 20111287 how to save redirect output from laravel artisan command但这不适用于我
  • 在 GridLayout 中对齐按钮

    我的布局代码及其图形表示是 这只是一个例子 我有大约30个Buttons在我的应用程序中GridLayout 我想要我的Buttons填充网格中的整个单元格 并且网格的列应该具有均匀的宽度 高度 我似乎无法完成它 欢迎任何帮助 我没用过Gr
  • Flask,无法分配请求的地址[重复]

    这个问题在这里已经有答案了 我正在尝试在远程服务器上运行烧瓶应用程序 以便我可以从其他计算机访问它 服务器有一个公共 IP 我将 Flask 配置为在该 IP 上运行 但是当我运行脚本时 我得到以下回溯 注意 我已从回溯和代码中删除了公共
  • UITextField——观察 selectedTextRange 的变化?

    有什么方法可以观察 UITextField 的 selectedTextRange 的变化吗 我尝试观察所有 UIControlEvents 但更改 selectedTextRange 不会触发 UIControlEvent 另一个死胡同
  • java中如何替换空值空字符串? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我得到了null来自数据库的值 但我
  • Highchart 在 x 轴上显示字符串

    我试图将我的 x 轴值显示为系列的 highcharts 上的字符串 但得到 0 1 2 这是 xaxis 数组索引位置 如何在 higcharts 上显示格式化为字符串的 xaxis 值 这是我所拥有的 Highcharts chart
  • 最后命名的参数不是函数或数组?

    这个问题是关于 vararg 函数 以及省略号之前的最后一个命名参数 void f Type paramN va list ap va start ap paramN va end ap 我在阅读 C 标准时 发现了以下限制va start
  • Django 内联-允许添加禁用编辑

    你好 我在阅读以下问题后提出这个问题 问题 1 https stackoverflow com q 2951781 1095090 and 问题2 https stackoverflow com q 9504371 Question 1 没