我想Edit/Update
使用Django Updateview
排除字段編輯與更新視圖Django的模型對象
model.py模型對象(記錄)
from django.db import models
from myapp.models import Author
class Book(models.Model):
author = models.ForeignKey(Author)
book_name = models.CharField(max_length=260)
amount = models.DecimalField(
max_digits=10, decimal_places=2, default=0.00)
description = models.TextField()
views.py
class BookEditView(generic.UpdateView):
model = Book
template_name_suffix = '_update_form'
exclude = ('author',)
def get_success_url(self):
return reverse("books:list_of_books")
books_update_from。 HTML
{% extends "base.html" %}
{% block main_title %}Edit Book{% endblock %}
{% block content %}
<form method="post" action="" class="form-horizontal">
{{form.as_p}}
</form>
{% endblock %}
當形式呈現,在Author
洋場仍然在頁面上展示,即使我在BookEditview
在exclude
提到如上
那麼如何來隱藏字段,並提交形式?
此外,我嘗試通過渲染個別字段,如form.book_name
,form.amount
等(我知道這種方法不能解決上述問題,但只是給了一個愚蠢的嘗試)。當我提交表格時,它的行爲是可以忽略的,並且什麼都不做,因爲我們沒有提交author foreign key value
,因此表格無效,並且提交也沒有做任何事情
所以我想知道的是如何排除該字段使用UpdateView
編輯模型渲染它作爲一種形式,當模型(我是做錯了什麼上面我的代碼?)
我也想知道的Updateview
的概念,如果我們排除foreignKey
領域則沒有是否需要提交外鍵值?(因爲只有在包含Author Foreign Key
的每個字段都提交值時,編輯表單纔有效)?
:感謝您的回覆,k是有什麼辦法可以提交外鍵值當我們點擊提交?我的意思是我們可以重寫form_data或一些方法中的這種行爲? –
如果你想改變作者,你可以重寫'form_valid'方法。請參閱文檔中的[本示例](https://docs.djangoproject.com/en/1.5/topics/class-based-views/generic-editing/#models-and-request-user)。否則,我不確定你的意思 - 當你故意從表格中排除它時,你爲什麼要提交價值? – Alasdair
抱歉,我的意思是如果我們沒有爲此寫一個表格類。無論如何,我從上述答案中得到了解決方案,但是如果我們還沒有創建表單類,還想進一步學習嗎?如何排除外地字段,因爲排除在Updateview中不起作用 –