2017-02-22 50 views
0

我在我的模型中有兩個TextField。但是我想更改TextField的行和列屬性。我知道從this頁面可以使用admin.py中的以下代碼更改TextField的外觀。如何自定義Django admin內部的特定TextField不是全部?

class RulesAdmin(admin.ModelAdmin): 
formfield_overrides = { 
    models.TextField: {'widget': Textarea(
         attrs={'rows': 1, 
           'cols': 40})}, 
} 

... 
admin.site.register(Rules, RulesAdmin) 

正如我所說的,使用上面的代碼改變了TextField兩者的樣子,我想只改變其中之一,這裏是我的模型看起來像:

class Post(models.Model): 
    title = models.CharField(max_length=200) 
    content = models.TextField() 
    pub_date = models.DateTimeField(auto_now_add=True) 
    update_date = models.DateTimeField(auto_now=True) 
    meta = models.TextField(blank=True) 

    def __str__(self): 
     return self.title 

我只想改變meta字段的外觀。

我應該怎麼辦?

+0

此[鏈接](https://docs.djangoproject.com/en/dev/ref/contrib /admin/#django.contrib.admin.ModelAdmin.formfield_overrides)將幫助您自定義「TextField」。 –

回答

1

下面的代碼添加到forms.py

from django.forms import ModelForm, Textarea 
from .models import Lesson 

class PostModelForm(ModelForm): 

    class Meta: 
     model = Lesson 
     fields = ('__all__') 
     widgets = { 
      'meta': Textarea(attrs={'cols': 80, 'rows': 5}), 
     } 

和在admin.py爲此

class PostModel(admin.ModelAdmin): 
    list_display = ('id', 'title', 'pub_date', 'course',) 
    search_fields = ('title', 'course__alias',) 

    form = PostModelForm