Djangoの作業中に、異なるカテゴリを表示するアプリケーションを作成しました。いずれか1つをクリックすると、それに関連するすべてのページを示すウィンドウが開きます。同じウィンドウに、その特定のカテゴリに新しいページを追加するオプションがあります。
nullでない制約のエラーの値に対して、この整合性エラータイプが表示されています。私はこのエラーを理解することはできません。どこが間違っているのか理解してください。私は必要なすべてのスクリプトを投稿しました。Django Integrity Error - NOT NULL制約に失敗しました:zdorovo_page.category_id
models.py
from django.db import models
from django.template.defaultfilters import slugify
class Category(models.Model):
name = models.CharField(max_length=128, unique=True)
slug = models.SlugField(blank = True, null= True)
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(Category, self).save(*args, **kwargs)
class Meta:
verbose_name_plural = 'categories'
def __unicode__(self):
return self.name
class Page(models.Model):
category = models.ForeignKey(Category)
title = models.CharField(max_length=128)
url = models.URLField()
views = models.IntegerField(default=0)
def __unicode__(self):
return self.title
私は基本的に既存のカテゴリにページを追加しようとしています。これは私のadd_pageビュー
views.py for add_page
def add_page(request , category_name_slug):
category = Category.objects.get(slug = category_name_slug)
form = PageForm()
if request.method == 'POST':
form = PageForm(request.POST)
if form.is_valid():
if category:
page = form.save(commit = True)
page.category = category
page.views = 0
page.save()
return about(request , category_name_slug)
else:
print form.errors
return render(request , 'zdorovo/add_page.html' , {'form': form , 'category': category})
についてここでは、特定のカテゴリに既存のページの世話をし、それらを表示するビューです。
これは、誰もが私の側から何かを必要とする場合は、私を更新してください私のforms.py
class CategoryForm(forms.ModelForm):
name = forms.CharField(max_length=128, help_text="Please enter the category name.")
views = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
likes = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
slug = forms.CharField(widget=forms.HiddenInput(), required=False)
class Meta:
model = Category
fields = ['name',]
class PageForm(forms.ModelForm):
title = forms.CharField(max_length=128, help_text="Please enter the title of the page.")
url = forms.URLField(max_length=200, help_text="Please enter the URL of the page.")
views = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
class Meta:
model = Page
exclude = ('category',)
です。
P.S.-すべてのインデントが処理されましたが、エラーはありません。
を試してみてはそれをしたとの結果を得ました。 – PRATEEK