【问题标题】:DB constantly exploding in DjangoDB在Django中不断爆炸
【发布时间】:2017-08-21 13:59:06
【问题描述】:

我正在尝试使用 django,到目前为止,除了重复的数据库问题之外,我发现它非常棒。

我最新的是通过示例书遵循 Django,并且我已经遵循了所有内容,但是当遵循一些简单的说明通过 python shell api 添加一些数据时,我得到以下信息:

>>> from django.contrib.auth.models import User
>>> from blog.models import Post
>>> user = User.objects.get(username='jamie')
>>> Post.objects.create(title='One More Post', slug='one-more-post', body='Post body', author='user')
Traceback (most recent call last):
  File "/Users/jamie/dev/venv/lib/python3.6/site-packages/django/core/management/commands/shell.py", line 69, in handle
self.run_shell(shell=options['interface'])
  File "/Users/jamie/dev/venv/lib/python3.6/site-packages/django/core/management/commands/shell.py", line 61, in run_shell
raise ImportError
ImportError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/jamie/dev/venv/lib/python3.6/site-packages/django/db/models/manager.py", line 127, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/Users/jamie/dev/venv/lib/python3.6/site-packages/django/db/models/query.py", line 346, in create
obj = self.model(**kwargs)
  File "/Users/jamie/dev/venv/lib/python3.6/site-packages/django/db/models/base.py", line 468, in __init__
setattr(self, field.name, rel_obj)
  File "/Users/jamie/dev/venv/lib/python3.6/site-packages/django/db/models/fields/related.py", line 629, in __set__
self.field.rel.to._meta.object_name,
ValueError: Cannot assign "'user'": "Post.author" must be a "User" instance.

这是在学习多个教程时发生的,我很难过。我遵循标准说明并通过终端安装了 pip、python 和 django。还使用虚拟环境,所以不知道为什么会这样。

【问题讨论】:

  • 您的 Post 模型需要一个 User 实例(您传递的是文字字符串 'user' 而不是 user 实例变量)
  • 哦,这很尴尬 :) 我已修复,但仍然收到第 69 行和第 61 行的 Traceback 错误。
  • 非常感谢您的帮助 - 我刚刚检查了本书的勘误表,但未声明 var post =。
  • 这是哪个 Django 版本? 1.9.13 ?你在哪个操作系统上工作?

标签: python django sqlite django-models


【解决方案1】:

用这个代替你的陈述。

使用user 变量而不是'user' 字符串。

Post.objects.create(title='One More Post', slug='one-more-post',
                    body='Post body', author=user)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-05
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2015-06-11
    • 1970-01-01
    相关资源
    最近更新 更多