【发布时间】:2018-09-26 23:51:41
【问题描述】:
我的 django 模型中有两个字段,只有当用户选择“类型”作为“维度”时它们才应该是可编辑的,否则它们不应该对用户可见。
我的模型是这样的代码
from django.db import models
class Configuration(models.Model):
name = models.CharField(max_length=30)
user_defined_name = models.CharField(max_length=50)
FieldTypes = (('aD', 'Dimension'), ('aM', 'Measure'))
type = models.CharField(max_length=11, choices=FieldTypes)
is_key = models.BooleanField(default=False, editable=False)
unit = models.CharField(max_length=30, null=True, blank=True, editable=False)
def __str__(self):
return self.name
我知道使用 JavaScript 是可能的,但是我不想自己写 html 或 js,因此不能使用 JavaScript 来做到这一点。
【问题讨论】:
-
您不必编写 HTML。将所有 JS 代码写入
.js文件并使用class Media将该文件提供给 ModelAdmin。 -
有没有办法只使用 Django 功能......而不用自己使用 js
-
如果用户选择需要从视图中处理的类型,您需要为其创建单独的模型并创建多部分表单(向导视图)。如果你试图在没有 js 的情况下处理这个问题会很危险
-
类型选择发生在 Django 的上下文之外;它发生在浏览器上。因此,JS 是放置此代码的合适位置。它也很容易做到,我建议您检查一下。
-
@xyres 终于用 JS 完成了。然后我覆盖保存方法以删除额外的字段数据,但是该 JS 文件正在加载到我的所有管理部分中,其中不存在编辑表单,因此出现错误。你能帮我吗
标签: python-3.x django django-models