我正在为我的网站使用Django管理员,我想对我的一个模型的list_display页面上的字段显示进行自定义.
我的一个型号有TextField300个字符
当模型在Django管理员中列出时,我想将管理列表显示中显示的文本长度限制为100个字符.
有没有办法在Django Admin类中执行此操作?
admin.py:
class ApplicationAdmin(admin.ModelAdmin):
model = Application
list_display = [ "title1", "title2"]
Run Code Online (Sandbox Code Playgroud)
models.py:
class Application(models.Model):
title1 = models.TextField(max_length=300)
title2 = models.TextField(max_length=300)
Run Code Online (Sandbox Code Playgroud) 我不确定Rails 3的正确方法是什么.我希望在索引视图的顶部有过滤条件字段,用于过滤数据.
我下面的内容用于过滤我的列表,但我也希望过滤字段重新填充当前过滤器的内容,我无法弄清楚如何做到这一点.我在下面工作的方法也不像是"正确"的方法来实现这一点,因为它依赖于将空字符串传递给视图中的字段辅助方法之类的东西.
控制器:
def index
@animals = Animal.by_color(params[':color']).by_age(params[':age']).paginate(:page => params[:page])
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @animals }
end
Run Code Online (Sandbox Code Playgroud)
结束
视图:
<h1>Listing Animals</h1>
Filter By:
<%= form_for(:animal, :url => { :action => "index" }, :html => {:method => :get} ) do |f| %>
<div>
Color: <%= text_field'', ':color', :size => 10 ) %>
Age: <%= text_field('', ':age') %>
<%= f.submit "Filter List" %>
</div>
<% end %>
<%= will_paginate %>
...
Run Code Online (Sandbox Code Playgroud)
我在我的模型中使用范围方法,它非常灵活.我只是模糊了Controller如何"params"方法和View方法"form_for","text_field"相互映射.有关如何重构此内容以及在列表当前已过滤时填充过滤器字段的任何想法?
控制器: …