2016-01-06 47 views
0

您好我想在我的形式將其禁用幾場取決於某一個領域是否已經進入或沒有任何數據。如果是,那麼我應該隱藏它們。禁止現場條件

class Dictionary(models.Model) 
    name = models.CharField(max_length=50, blank=True, 
          null=True, db_index=True)      
    phase = models.PositiveSmallIntegerField(db_index=True, 
          default=0, blank=True, null=True) 
    warning = models.NullBooleanField(default='Unknown', 
          null=True, blank=True) 
    year = models.PositiveSmallIntegerField(db_index=True, default=0, 
          blank=True, null=True) 
    date_loaded = models.DateTimeField(auto_now=True, blank=False, 
          null=False, help_text=u'current date ') 

如果我在該字段中輸入了姓名,我應該禁用字段階段和警告。

在adminx.py

class DictionaryAdmin(object): 
reversion_enable = True 
list_display = ('name','phase','warning','year','date_loaded') 

list_display_links = ('name') 
readonly_fields =() 

添加只讀域總是禁用它們。 我可以通過覆蓋get_readonly_fields給出adminx文件中的條件來做到這一點嗎?

my js file . 

    (function($) { 
    $(function() { 
     var name = $('name'), 
      phase = $('phase'), 

      warning = $('warning'); 

     function toggledisabed(value) { 
      var checkname = /^CH[1-9][0-9+]?$/i; 
      value = checkname.test(name) ? phase.show(): phase.hide() 
     } 
     toggledisabled(name.val()); 
    }); 
})(django.jQuery); 

回答

0

如果我理解的很好,你想隱藏表單的領域,根據模型的條件。所以你可以使用{% if %}標籤。像這樣

{% if model.name %} 
    {{ form.field_for_name }} 
{% else %} 
{% endif %} 

在情況下,如果模型具有「name」字段的數據,它會顯示,否則它會隱藏