预填充场和功能()

时间:2012-03-09 17:00:31

标签: django django-admin

根据我的理解,预先填充的字段不应包含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'.

是否有一项工作,或者我应该放弃这个想法?

//小鼠

1 个答案:

答案 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);
    }
});