我正在使用django 1.4并且我有一个很多2字段,所以在创建管理站点时我想将此字段添加为内联,这里有一些代码:
class SummaryInline(admin.TabularInline):
model = ParserError.summaries.through
class MyClassAdmin(admin.ModelAdmin):
list_display = ('classifier', 'name', 'err_count', 'supported')
fields = ('classifier', 'name', 'err_count', 'err_classifier', 'supported')
inlines = (SummaryInline,)
readonly_fields = ('classifier', 'err_count')
所以我的问题是,如何才能使内联字段只读?
答案 0 :(得分:52)
经过一段时间试图找到我想出的名字感谢this answer,所以我检查了self.opts.local_fields
的名字并找到了中间表的名称并将其添加到{{3} },将readonly_fields
设置为False。
class SummaryInline(admin.TabularInline):
model = ParserError.summaries.through
readonly_fields = ('myclasssummary',)
can_delete = False
非常简单,但我花了一些时间,所以我发现在这里添加它是一个好主意。
答案 1 :(得分:28)
此外,如果您不希望能够添加/删除行,则可以添加这些定义。
<?php
$i=1;
foreach($designation as $desig)
{
?>
<tr>
<td><?php echo $i ?></td>
<td><?php echo $desig['name']; ?></td>
<td><a href="<?php echo base_url('index.php/designation/delete_designation/'.$desig[$i]->dkey);?>">
<input type="button" value="Delete" class="btn btn-danger"/>
</a>
<td class="numeric"><a id= "<?php echo $desig[$i]->dkey; ?>" onclick="edit_designation('<?php echo $designation[$i]->dkey; ?>')" data-target="#myModal" data-toggle="modal" style="color:#ffffff;" href="#myModal"><button class="btn blue" type="button">Edit</button>
</tr>
<?php
$i++;
}
?>
答案 2 :(得分:2)
感谢Keval Prabhu
class UnitsInline(admin.TabularInline):
model = Units
extra = 0
verbose_name = 'Units'
verbose_name_plural = 'Units of company'
**def has_add_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False**
答案 3 :(得分:2)
您可以通过添加以下内容将整行设置为只读:
class UnitsInline(admin.TabularInline):
def has_change_permission(self, request, obj=None):
return False
这将防止任何人从管理员那里编辑条目