在Django 2.0.6中,
在Django管理页面中添加数据时,我想分配默认的模型字段值。
这是我的代码。
<!DOCTYPE html>
<html>
<head>
<title>Routing</title>
</head>
<body ng-app="myApp">
<a href="#/login">Login</a>
<a href="#/register">Register</a>
<div ng-view></div>
</body>
<script src="angular-min.js" type="text/javascript"></script>
<script src="angular-route.js" type="text/javascript"></script>
<script>
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/login", {
templateUrl : "login.html"
})
.when("/register", {
templateUrl : "register.html"
})
});
</script>
</html>
class a_model(models.Model):
a_field = models.foreignKey(~~)
~~~~
我想在上面的URL中获取586632,并将默认值分配给该页面中的a_field。
我在models.py中尝试这种方式
http://127.0.0.1:8000/admin/~~~/a_model/add/?_changelist_filters=a_field__exact%3D586632
class a_model(models.Model):
@staticmethod
def default_id(request):
return 586632
然后,我看到默认值为586632,就像我期望的那样。
我想知道如何获取url参数值以在模型类中分配默认值。
帮帮我..
答案 0 :(得分:0)
我正在与django admin合作;在对象modeladmin内部,我以这种方式覆盖了 get_changeform_initial_data 函数:
def get_changeform_initial_data(self, request):
from django.http import QueryDict
if request.GET.__contains__('_changelist_filters'):
params = QueryDict(request.GET['_changelist_filters'])
if 'acto__exact' in params:
return {'acto' : params['acto__exact']
}
因此,如果在url中将它指定为changelist_filter,那么我将获得“ acto”字段的初始值。