我阅读了文档和这篇文章...... Django - 用户模型的外键
我按照它所说的,我仍然无法让它工作.当我尝试运行迁移时,我在追溯中得到了这个错误...
django.db.utils.ProgrammingError: column "author_id" cannot be cast automatically to type integer
HINT: You might need to specify "USING author_id::integer".
Run Code Online (Sandbox Code Playgroud)
我只是不知道如何解决这个错误.
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class BlogCategory(models.Model):
'''model for categories'''
title = models.CharField(max_length=30)
description = models.CharField(max_length=100)
class BlogPost(models.Model):
'''a model for a blog post'''
author = models.ForeignKey(User)
date = models.DateField()
title = models.CharField(max_length=100)
post = models.TextField()
Run Code Online (Sandbox Code Playgroud)
And*_*w E 61
不要User直接使用该模型.
从文档中
您应该使用django.contrib.auth.get_user_model()引用用户模型,而不是直接引用User.
例:
from django.conf import settings
from django.db import models
class Article(models.Model):
author = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
)
Run Code Online (Sandbox Code Playgroud)
Dea*_*ada -15
我不知道“settings.AUTH_USER_MODEL”方法,但众所周知且常用的方法是“Auth.User”模型。你这边有这样的事情。
from django.contrib.auth.models import User
class BlogPost(models.Model):
'''a model for a blog post'''
author = models.ForeignKey(User)
date = models.DateField()
title = models.CharField(max_length=100)
post = models.TextField()
Run Code Online (Sandbox Code Playgroud)