【发布时间】:2011-02-22 18:43:40
【问题描述】:
我有 2 个表/模型,从所有实际目的来看,它们与标准的作者/书籍示例相同,但有一个额外的限制,即在我的应用程序中,每个作者只能写 0 或 1 本书。 (如Book模型中的ForeignKey字段是或可以是OneToOneField,可能有作者在Book表中没有对应的书。)
我希望能够显示一个显示多本书的表单,并显示相应作者表中的一些字段(例如作者姓名、作者地址)。我遵循了inlineformset 的示例,但这甚至没有在生成的表单中显示作者姓名。
编辑 --- 添加代码示例
# Models
class Author(models.Model):
name = models.CharField(max_length=100)
address = models.CharField(max_length=100)
class Book(models.Model):
author = models.OneToOneField(Author)
title = models.CharField(max_length=100)
# views
def manage_books(request):
author = Author.objects.get(pk=1)
BookInlineFormSet = inlineformset_factory(Author, Book)
formset = BookInlineFormSet(instance=author)
return render_to_response("manage_books.html", {
"formset": formset,
})
# template
<table>
<tr>
<th>Author</th>
<th>Address</th>
<th>Title</th>
</tr>
{% for form in formset.forms %}
<tr>
<td>{{ form.author }}</td>
<td>{{ form.author_address }}</td>
<td>{{ form.title }}</td>
</tr>
{% endfor %}
</table>
Author 和 Author_address 的输出为空 请注意,如果我在模型中定义 unicode 函数,我可以让作者打印,但这并不能解决一般问题。另请注意,form.author.address 也不起作用。
【问题讨论】:
-
如果你展示一些你正在尝试的代码会很棒
-
下面发布的示例代码。感谢询问
标签: django django-models django-forms