python - 使用 Django auth 用户模型作为外键和反向关系

标签 python django

我正在使用 django.contrib.auth.models 中的 User 模型。我有另一个名为 Post 的模型,它通过外键引用 User

问题是当我尝试通过访问登录用户的帖子时

request.user.post_set.order_by('-timestamp')

我得到一个错误,User 对象没有属性 post_set。那么如何使用带外键的默认身份验证模型呢?

最佳答案

您是否在 settings.py 安装的应用程序中包含了包含 Post 模型的应用程序?

例如

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'testapp'
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

然后运行 ​​manage.py syncdb?

python manage.py syncdb

即 Post 模型的数据库表肯定存在吗?

我做了一个快速测试,没有发现问题:

from django.db import models
from django.contrib.auth.models import User

class PostModel(models.Model):
    user = models.ForeignKey(User)

(test) C:\Users\Steven\django_projects\test\testproj>python manage.py shell
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.contrib.auth.models import User
>>> test = User.objects.get(username='test')
>>> test.postmodel_set.all()
[]

关于python - 使用 Django auth 用户模型作为外键和反向关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5458358/

相关文章:

python - 将包含一项的列表转换为字典值中的项本身

Python单元测试检查函数调用参数

python - 如何将文件读入字符串而不转义字符

python - 无法在 PyDev 中创建 Django 项目

django - 如何阻止 Django 模板 render_to_string 尝试将 unicode 编码为 ascii?

python - 如何解析 Python 中的自由文本时间间隔,从几年到几秒不等?

python - 服务器无法恢复事务。描述 :9800000002. (3971) (SQLEndTran)')

java - 在android上运行java内的python脚本

django - 更新 Github 和服务器上的敏感代码?

python - 无法通过 Django 联系表单发送电子邮件