我必须在我的模型表单中添加额外的字段.我的方法是:
class MyForm(forms.ModelForm):
extra_field = forms.CharField()
class Meta:
model = MyModel
widgets = {
#Does not work
'extra_field': forms.Textarea(attrs={'placeholder': u'Bla bla'}),
}
Run Code Online (Sandbox Code Playgroud)
但似乎忽略了extra_fieldat的widget定义class Meta,因为我在模板上有一个裸输入标记而不是textarea.所以我申请下一个方法:
class MyForm(forms.ModelForm):
#It works fine
extra_field = forms.CharField(widget=forms.Textarea())
class Meta:
model = MyModel
Run Code Online (Sandbox Code Playgroud)
它对我来说很完美,但我曾经在class Meta声明时为表单字段指定小部件.所以我想知道:
为什么我的第一种方法不起作用?我做错了什么?
我使用d3来自 的类型定义@types/d3。我有一种结合选择和转换的方法。该参数可以是其中之一。Selection 和 Transition 类型都有该selectAll方法。selectAll但是当我尝试向工会申请时,出现以下错误:
该表达式不可调用。联合体类型的每个成员 '{(): Selection<null, undefined, BaseType,unknown>; (选择器:null):Selection<null,未定义,BaseType,未知>;(选择器:未定义):Selection<...>;<DescElement extends BaseType, OldDatum>(选择器:字符串):Selection<...>;<DescElement extends BaseType, OldDatum>(选择器:ValueFn<...>):Selection<...>;} ...' 有签名,但这些签名都不相互兼容。
以下是给出此错误的代码示例:
/* Definitions from @types/d3 */
export type BaseType = Element | Document | Window | null;
export type ValueFn<T extends BaseType, Datum, Result> = (this: T, datum: Datum, index: number, groups: T[] | ArrayLike<T>) => Result;
export interface Transition<GElement extends BaseType, Datum, PElement extends BaseType, PDatum> {
selectAll<DescElement extends BaseType, …Run Code Online (Sandbox Code Playgroud)