私はチュートリアルからDjangoのWebサイトを構築しています。モデルはポストと呼ばれ、次のようになりますされていますDjangoモデルブランク= Trueですが、sqlは常にNULLではありません
class Post(models.Model):
author = models.ForeignKey('auth.User', verbose_name='Author')
title = models.CharField(max_length=200, verbose_name='Titel')
text = HTMLField()
created_date = models.DateTimeField(default=timezone.now, verbose_name='Erstellungsdatum')
published = models.BooleanField(blank=True, verbose_name='Veröffentlichung')
tags = models.ManyToManyField(Tag, blank=True)
class Meta:
verbose_name = 'Artikel'
verbose_name_plural = 'Artikels'
ordering = ['-created_date']
def publish(self):
self.published = True
self.save()
def __str__(self):
return self.title
あなたが見ることができるように、私はいくつかのフィールドblank=True
を作りました。
移行/ SQL Djangoは今、このようなルックスを実行している:
ALTER TABLE "blog_post" RENAME TO "blog_post__old";
CREATE TABLE "blog_post" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"published" bool NOT NULL, "title" varchar(200) NOT NULL, "text" text NOT
NULL, "created_date" datetime NOT NULL, "author_id" integer NOT NULL
REFERENCES "auth_user" ("id"));
INSERT INTO "blog_post" ("id", "title", "text", "created_date", "author_id",
"published") SELECT "id", "title", "text", "created_date", "author_id",
"published" FROM "blog_post__old";
DROP TABLE "blog_post__old";
CREATE INDEX "blog_post_author_id_dd7a8485" ON "blog_post" ("author_id");
COMMIT;
それはちょうど空白値を無視し、すべてのフィールドは、NOT NULLになります。 これもこれを見ましたquestion
問題は、テンプレートにフォームを実装すると、このフィールドは「必須」入力なので、チェックボックスをオフにするとフォームを送信できないということです。
ありがとうございます!
forms.py
from django import forms
from tinymce.widgets import TinyMCE
from .models import Post
class PostForm(forms.ModelForm):
text = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30, 'class': 'materialize-textarea'}))
published = forms.BooleanField(widget=forms.CheckboxInput())
class Meta:
model = Post
fields = ('title', 'published', 'text', 'tags')
テンプレート
{% extends 'blog/base.html' %}
{% block content_block %}
<div class="row">
<h1>Edit Post</h1>
</div>
<div class="row">
<form class="col s12" action="" method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="waves-effect waves-light btn"><i class="material-icons left">save</i>Speichern</button>
</form>
</div>
{% endblock %}
ありがとうございますが、問題はフォームフィールドに「必須」を追加することです。それは問題です。私はより明確になるように質問を変えます。 – Sebastian
これはあなたのモデルではなく、あなたのフォームの問題です。 – Alasdair
あなたは正しかった、上書きが問題だった、ありがとう!私はnull =真とblaank =真のSQLと混同され、それがモデルの問題だと思った! – Sebastian