我正在为 angular cli 使用 django rest 框架构建 API 后端,但我不知道如何访问 verbose_name 的模型字段属性以对其进行序列化。这是我的代码:
models.py
class MyModel(model.Models):
myField = models.CharField(verbose_name='My Verbose Name')
# Here I have other 30 fields
Run Code Online (Sandbox Code Playgroud)
这是此模型的序列化程序
serializers.py
class MyModelSerializer(ModelSerializer):
myField = SerializerMethodField()
def get_myField(self, obj):
field = next(f for f in obj._meta.fields if f.name == 'myField')
myField= {
'verbose_name': field.verbose_name.title(),
'value': obj.myField
}
return myField
# Do I Have to repeat this function for every field on my Model in order to have verbose-name ??
class Meta:
model = …Run Code Online (Sandbox Code Playgroud) 我在我测试的Component类上有一个静态方法,我的问题是如何在我的spec测试文件中访问该方法?
到目前为止,我可以访问一个组件实例:
let fixture = TestBed.createComponent(MyComponent);
let comp = fixture.componentInstance;
Run Code Online (Sandbox Code Playgroud) 我是Java新手,这段代码在编译时给我错误:
import java.util.*;
public class Sorts {
public List<Integer> ascendent(List<Integer> list) {
return Collections.sort(list);
}
public List<Integer> descendant(List<Integer> list) {
return Collections.sort(list, Collections.reverseOrder());
}
public static void main(String[] args) {
Sorts sorts = new Sorts();
List<Integer> list = new ArrayList<Integer>();
list.addAll(Arrays.asList(1,9,2,8,3,7,4,6,5,5));
System.out.println(sorts.ascendent(list).toString());
}
}
Run Code Online (Sandbox Code Playgroud)
错误是从ascendent和descendent方法返回的行:
需要不兼容的类型:java.util.List(java.lang.Integer)
found:void
但在我看来,我正在正确地投射我的ListArray对象,出了什么问题?