2014-04-29 66 views
0

點擊+登錄管理網站時,要添加新的ManyToMany字段,會彈出一個對話框,並要求您填寫ManyToMany'ed表的字段。我有一個架構如下圖所示:Django管理站點 - 如何覆蓋用+符號添加manytomanyfield?

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。我怎樣才能實現它?有任何想法嗎?

回答

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); 
+0

更好的名稱應該是:人=人,rel_types = relation_types。 –