单击+登录管理站点时,要添加新的ManyToMany字段,会出现一个弹出窗口,并要求您填写ManyToMany表的字段。我有一个如下的架构:
class RelTypes(models.Model):
name = models.CharField(max_length=50)
class People(models.Model):
code = models.CharField(max_length="15", unique=True)
rel_types = models.ManyToManyField('RelationTypes')
我想显示code
,用户在弹出窗口中,在RelTypes的名称字段的文本框之前向People模型(在管理站点中)添加新字段时输入。我怎样才能实现它?有什么想法吗?
答案 0 :(得分:0)
这应该可以解决问题:
# models.py
from django.db import models
class RelationType(models.Model):
name = models.CharField(max_length=50)
class People(models.Model):
code = models.CharField(max_length=15, unique=True)
rel_types = models.ManyToManyField('RelationType')
# admin.py
from django.contrib.admin.options import ModelAdmin
class RelationTypeAdmin(ModelAdmin):
class Media:
js = ('admin/related_type_change_form.js',)
# related_type_change_form.js
;(function($) {
if(window.opener) {
$(function() {
$('#content-main').prepend('<p id="code_value"></p>');
var target_el = $("#code_value");
var code_el = window.opener.$("#id_code");
var update_code = function() {
target_el.text(code_el.val());
}
code_el.on('keyup change', update_code);
update_code();
});
}
})(django.jQuery);