2010-05-22 104 views
0

我有2個表格/模型,其實際用途與標準的作者/書籍示例相同,但有額外的限制,在我的應用程序中,每個作者只能編寫0或1本書。 (例如,Book模型中的ForeignKey字段是或可能是OneToOneField,並且可能有作者在Book表中沒有對應的書籍。)以Django表格的表格顯示/編輯字段

我希望能夠顯示顯示多本圖書的表單並顯示相應作者表中的一些字段(例如author_name,author_address)。我遵循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_address 注意我能得到作者打印,如果我在模型中定義一個的unicode功能,但這並不能解決一般問題。另請注意,form.author.address也不起作用。

+0

會很好,如果你顯示一些代碼,你正在嘗試 – 2010-05-22 19:58:45

+0

示例代碼張貼如下。感謝您的詢問 – jamida 2010-05-22 21:56:19

回答

0

我是新來的Django,但我認爲這就是你所追求的。

嘗試在您的OneToOneField中添加null = True。例如:

book = model.OneToOneField(Book, null=True) 

關於第二部分,內聯表格就是您要查找的內容。我假設你的表單中有一個錯誤,或者更可能是你的模板。您是否添加了(例如):

{{ author_formset.as_p }} 

在{{form.as_p}}下的模板中?

如果這不是問題,您可能需要發佈相關模板,查看,型號&表單代碼。