Edit/Update
djangoを使用してモデルオブジェクト(レコード)を作成しようとしていますUpdateview
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()
ビュー.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
に言及したにもかかわらず、外部フィールドがまだページに表示さexclude
れBookEditview
ます
では、そのフィールドを非表示にしてフォームを送信する方法は?
form.book_name
また、などの個々のフィールドをレンダリングしてみましたform.amount
(このアプローチでは上記の問題が解決されないことはわかっていますが、愚かな試みが行われただけです)。フォームを送信すると、そのアクションは無視でき、何もしませauthor foreign key value
ん。フォームを送信していないため、フォームは無効であり、送信しても何もしません
だから私が知りたいのは、モデルUpdateView
を編集するために使用するフォームとしてレンダリングするときにモデルからフィールドを除外する方法です(私のコードで何か間違ったことをしましたか?)
また、フィールドUpdateview
を除外すると、外部キー値を送信する必要がないという概念を知りたいですか?foreignKey
Author Foreign Key