我对 DRF 嵌套序列化程序有很大的误解。我阅读了有关此的文档,发现我需要提供自己的更新方法。所以,这里是:
class SkillsSerializer(serializers.ModelSerializer):
class Meta:
model = Skills
class ProfileSerializer(serializers.ModelSerializer):
skills = SkillsSerializer(many=True)
class Meta:
model = Profile
fields = ('user', 'f_name', 'l_name', 'bd_day', 'bd_month', 'bd_year', 'spec', 'company', 'rate', 'skills', 'bill_rate', 'website', 'about', 'city', 'avatar', 'filled')
def update(self, instance, validated_data):
instance.user_id = validated_data.get('user', instance.user_id)
instance.f_name = validated_data.get('f_name', instance.f_name)
instance.l_name = validated_data.get('l_name', instance.l_name)
instance.bd_day = validated_data.get('bd_day', instance.bd_day)
instance.bd_month = validated_data.get('bd_month', instance.bd_month)
instance.bd_year = validated_data.get('bd_year', instance.bd_year)
instance.spec = validated_data.get('spec', instance.spec)
instance.company = validated_data.get('company', instance.company)
instance.rate = validated_data.get('rate', instance.rate)
instance.website = …Run Code Online (Sandbox Code Playgroud) 再会!我正在尝试找到将 list_per_page 添加为 admin 中所有模型的全局参数的解决方案。我发现,ModelAdmin 通过 ChangeList 对象有这个参数,它的默认值是 100。但是如果我想把它设置为 20 并且它对所有模型都是 true 呢?我的意思是,如果我需要在 admin 中更改当前模型的 list_per_page,我需要添加:
class CurrentModelAdmin(models.ModelAdmin):
list_per_page = 20
...
Run Code Online (Sandbox Code Playgroud)
有没有办法重新定义 ChangeList 对象来重写默认值?例如在 settings.py 中作为 LIST_PER_PAGE = 20
更好的是,我如何从前端接收它并动态地使用它?
我无法理解如何在两个页面之间传递信息?我正在使用反应路由器,可以通过链接传递 id 并从数组中获取正确的字符串。看起来像这样:
//my array
var data = [
{id: 1, title: "Breaking News #1", text: "This is one test new", date: "12.05.2015"},
{id: 5, title: "Breaking News #2", text: "This is *another* test new", date: "03.05.2015"}
];
//my fetch function
componentDidMount: function() {
var id = this.props.params.id;
var dt = data;
var post = [];
for (var i=0; i<dt.length; i++){
if (dt[i].id == id){
post.push(dt[i]);
};
};
this.setState({post : post});
},
Run Code Online (Sandbox Code Playgroud)
之后我尝试使用函数映射所有信息this.state.post.map(function (p) {并出现错误Uncaught TypeError: Cannot …