根据我的理解,预先填充的字段不应包含foriegnkey。我想到了一个解决方法。
在我的模型中..我通过名称getname()
定义了一个函数def getname(self):
t1 = str(self.team_one)
t2 = str(self.team_two)
t1t2 = t1 + ' vs ' + t2
return t1t2
并考虑在我的管理员中调用它..这就是我在做的方式。
prepopulated_fields = { 'name': ('getname()',)}
它应该解决我的问题,但这就是django所说的。
Exception Type: ImproperlyConfigured
Exception Value:
'FixtureAdmin.prepopulated_fields['name'][0]' refers to field 'getname' that is missing from model 'Fixture'.
是否有一项工作,或者我应该放弃这个想法?
//小鼠
答案 0 :(得分:1)
prepopulated_fields
仅适用于slu ;;它不是一种为字段赋予默认值的通用方法。
你必须为此编写自己的JavaScript。像下面这样的东西可以做到这一点:
$('#id_team_one, #id_team_two').change(function(){
var $team1 = $('#id_team_one');
var $team2 = $('#id_team_two');
if ($team1.val() && $team2.val()) {
var team1_selected = $(':selected', $team1).text();
var team2_selected = $(':selected', $team2).text();
$('#id_name').val(team1_selected + ' vs ' + team2_selected);
}
});