有人請解釋爲什麼我得到一個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