作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在显示表单之前,如何在自动生成的表单中设置字段的初始值以添加 Django 模型实例?我正在使用 Django 1.3.1。
我的模型如下:
class Foo(models.Model):
title = models.CharField(max_length=50)
description = models.TextField()
class FooAdmin(admin.ModelAdmin):
ordering = ('title',)
def get_default_content():
return 'this is a template for a Foo description'
class FooAdminForm(django.forms.ModelForm):
class Meta:
model = Foo
def __init__(self, *args, **kwargs):
kwargs['initial'].update({'description': get_default_content()})
super(FooAdminForm, self).__init__(self, *args, **kwargs)
class FooAdmin(admin.ModelAdmin):
ordering = ('title',)
form = FooAdminForm
AttributeError at /admin/bar/foo/add/
'FooForm' object has no attribute 'get'
Request Method: GET
Request URL: http://localhost:8000/admin/bar/foo/add/
Django Version: 1.3.1
Exception Type: AttributeError
Exception Value: 'FooForm' object has no attribute 'get'
Exception Location: /www/django-site/venv/lib/python2.6/site-packages/django/forms/widgets.py in value_from_datadict, line 178
最佳答案
您需要包含 self
作为您 __init__
中的第一个参数方法定义,但在调用父类(super class)的方法时不应包含它。
def __init__(self, *args, **kwargs):
# We can't assume that kwargs['initial'] exists!
if 'initial' not in kwargs:
kwargs['initial'] = {}
kwargs['initial'].update({'description': get_default_content()})
super(FooAdminForm, self).__init__(*args, **kwargs)
class Foo(models.Model):
title = models.CharField(max_length=50)
description = models.TextField(default=get_default_content)
关于django - 如何为 Django 管理模型添加实例表单设置初始数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10000950/
我是一名优秀的程序员,十分优秀!