Это должно быть легко.Я получаю ошибку, которую не понимаю.Я думаю, что мне нужно предварительно заполнить БД нулевыми значениями, чтобы это исправить, но мне неясно, так ли это.Я получаю следующую ошибку, которую я не понимаю ...
Невозможно добавить "": экземпляр находится в базе данных "Нет", значение в базе данных "по умолчанию"
у 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"