相关疑难解决方法(0)

从ModelForm中删除字段

我有一个简单的ModelForm:

class MyForm(ModelForm):

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        del self.fields['name']
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我尝试从表单的字段列表中删除一个字段(该字段明确存在于模型中),但我得到一个例外:

TemplateSyntaxError at [..]

Caught an exception while rendering: "Key 'name' not found in Form"
Run Code Online (Sandbox Code Playgroud)

我没有写自定义表单,因此发生错误的模板是:

/templates/admin/includes/fieldset.html, error at line 4
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

- 更新 -

该问题仅出现在管理区域中.

- 更新2 -

也许跟踪转储提供了更多信息:

Original Traceback (most recent call last):
  File "/Library/Python/2.5/site-packages/django/template/debug.py", line 71, in render_node
    result = node.render(context)
  File "/Library/Python/2.5/site-packages/django/template/defaulttags.py", line 155, in render
    nodelist.append(node.render(context))
  File "/Library/Python/2.5/site-packages/django/template/defaulttags.py", line 239, in render
    value = bool_expr.resolve(context, True)
  File "/Library/Python/2.5/site-packages/django/template/__init__.py", line 546, in resolve …
Run Code Online (Sandbox Code Playgroud)

django

8
推荐指数
3
解决办法
1万
查看次数

Django admin - 如果编辑对象,删除字段

我有一个可以通过Django管理区访问的模型,如下所示:

# model
class Foo(models.Model):
    field_a = models.CharField(max_length=100)
    field_b = models.CharField(max_length=100)

# admin.py
class FooAdmin(admin.ModelAdmin):
    pass
Run Code Online (Sandbox Code Playgroud)

假设我想在用户添加对象时显示field_a和field_b,但如果用户正在编辑对象,则只显示field_a.是否有一种简单的方法可以使用fields属性?

如果遇到它,我可能会破解JavaScript解决方案,但根本不这样做是不对的!

django django-admin

6
推荐指数
1
解决办法
4511
查看次数

标签 统计

django ×2

django-admin ×1