django foreignkey (usuario) en modelos

Leí los documentos y esta publicación … Django – Modelo de clave externa para usuario

Seguí lo que decía y todavía no puedo hacerlo funcionar. Cuando bash ejecutar las migraciones, aparece este error en el rastreo …

django.db.utils.ProgrammingError: column "author_id" cannot be cast automatically to type integer HINT: You might need to specify "USING author_id::integer". 

Simplemente no sé cómo arreglar ese error.

 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() 

No conozco el enfoque de “settings.AUTH_USER_MODEL”, pero un enfoque bien conocido y de uso común es el modelo “Auth.User”. Algo como esto en tu final.

 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() 

No use el modelo de User directamente.

De la documentación

En lugar de referirse directamente al usuario, debe hacer referencia al modelo de usuario utilizando django.contrib.auth.get_user_model ()

Ejemplo:

 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, ) 

Si creó un modelo de usuario personalizado, usaría la setting.AUTH_USER_MODEL . setting.AUTH_USER_MODEL , si no puede seguir adelante con un User model uso User model

Referencia al modelo de usuario de Django

la columna “author_id” no existe, parece que es el mismo problema desde aquí: el campo ForeignKey del sufijo Django con _id , por lo que para evitar este rastreo, puede usar:

 author = models.ForeignKey(User, db_column="user")