有人请解释为什么我得到一个NOT NULL约束失败:stories_story.url错误。NOT NULL约束失败:stories_story.url
我得到的错误,当我尝试“透过”故事(本地主机/报道)
这里有一些文件。如果你需要更多,请让我知道。
models.py
class Story(models.Model):
title = models.TextField(max_length=350)
url = models.URLField(null=True, blank=True)
points = models.IntegerField(default = 1)
moderator = models.ForeignKey(User, related_name = 'moderated_stories')
category = models.ForeignKey(Category)
voters = models.ManyToManyField(User, related_name = 'liked_stories')
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
@property
def domain(self):
return urlparse(self.url).netloc
def __unicode__(self):
return self.title
class Meta:
verbose_name_plural = "stories"
views.py
@login_required(login_url = "/login/")
def story(request):
if request.method == 'POST':
form = StoryForm(request.POST)
if form.is_valid():
story = form.save(commit = False)
story.moderator = request.user
story.save()
return HttpResponseRedirect('/')
else:
form = StoryForm()
return render(request, 'stories/story.html', {'form': form})
编辑:
我完全清除URLField因为我再也不需要它。我跑了迁移,一切正常。除了我仍然得到相同的错误:NOT NULL约束失败:stories_story.url。我不明白这个问题来自我的代码。
在创建表之后,您可能已向URLField添加了'null = True,blank = True'。在数据库shell中通过'python manage.py dbshell'输入'ALTER TABLE stories_story ALTER COLUMN url DROP NOT NULL'命令,或者更好地使用[south](http://south.readthedocs.org/en/latest/tutorial/part1的.html)。 – ozgur
我做到了!有没有修复? – elmo330
什么是您的数据库服务器? MySQL,postgreSQL,sqlite? – ozgur