这应该很简单。我收到一个我不明白的错误。我想我需要用空值预填充数据库来解决这个问题,但我不清楚是否是这种情况。我收到以下错误,我不理解......的含义。
无法添加“”:实例在数据库“无”上,值在数据库“默认”
models.py具有以下定义......
class Tag(models.Model):
name = models.CharField(max_length = "20", primary_key = True)
class Page(models.Model):
name = models.CharField(max_length="45", primary_key = True)
content = models.TextField(blank=True)
pub_date = models.DateTimeField('date published')
tags = models.ManyToManyField(Tag)
def __unicode__(self):
return self.name
无法渲染的视图是......
def save_page(request, page_name):
date = datetime.date.today()
content = request.POST["content"]
tag_list = []
if "tags" in request.POST:
tags = request.POST["tags"]
tag_list = [Tag.objects.get_or_create(name=tag)[0] for tag in tags.split()]
try:
page = Page.objects.get(pk=page_name)
page.content = content
for tag in tag_list:
page.tags.add(tag)
except Page.DoesNotExist:
page = Page(name=page_name, content = content, pub_date = date)
for tag in tag_list:
page.tags.add(tag)
page.save()
return HttpResponseRedirect("/wikicamp/page/" + page_name +"/")
回溯:
Environment:
Request Method: POST
Request URL: http://localhost:8080/wikicamp/page/Start/save/
Django Version: 1.3.1
Python Version: 2.7.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'wikicamp.wiki',
'django.contrib.admin']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "D:\web dev\training\Django\secondproj\wikicamp\..\wikicamp\wiki\views.py" in save_page
80. page.tags.add(tag)
File "C:\Python27\lib\site-packages\django\db\models\fields\related.py" in add
503. self._add_items(self.source_field_name, self.target_field_name, *objs)
File "C:\Python27\lib\site-packages\django\db\models\fields\related.py" in _add_items
563. (obj, self.instance._state.db, obj._state.db))
Exception Type: ValueError at /wikicamp/page/Start/save/
Exception Value: Cannot add "<Tag: Tag object>": instance is on database "None", value is on database "default"