我正在使用内联表单集。
我的模特:
class Author(models.Model):
description = models.CharField(max_length=100)
class Book(models.Model):
author = models.ForeignKey(Author)
details = models.CharField(max_length=100)
class AuthorForm(ModelForm):
class Meta:
widgets = {
'description': Textarea(attrs={'cols': 40, 'rows': 4}),
}
在我的views.py中,我像AuthorForm一样制作了表格
form = AuthorForm(request.POST)
但我也为书籍制作了一套表格
InlineFormSet = inlineformset_factory(Author, Books)
我无法使用小部件传递BooksForm,因此如何在书籍详细信息中添加textarea小部件。
甚至可能吗?我错过了一些明显的东西吗?
答案 0 :(得分:28)
尝试:
class BookForm(ModelForm):
class Meta:
model = Book
widgets = {
'details': Textarea(attrs={'cols': 40, 'rows': 4}),
}
InlineFormSet = inlineformset_factory(Author, Book, form=BookForm)
这很棒。特别是对于小部件,从Django 1.6开始,有一个用于inlineformset_factory的小部件参数
听起来你现在可以打电话了
inlineformset_factory(Author, Book, widgets={'details': Textarea(attrs={'cols': 40}))
答案 1 :(得分:0)
我不知道我是否理解你的问题:你想把Book.details呈现为textarea吗?
如果是这样,只需使用TextField而不是CharField。
class Author(models.Model):
description = models.TextField()