Как вызвать внешний ключ из внешнего приложения, где ключ не является первичным ключом в Django? - PullRequest
0 голосов
/ 25 марта 2020

Я начал работать с БД трекера задач в Django. У меня есть разные приложения, такие как пользователь, задача, статус и т. Д. c., Сейчас я пытаюсь вызвать userID в другом приложении, которое фактически является идентификатором в таблице пользователей (по умолчанию автоматически сгенерированный столбец).

Ниже приведено пример, в котором я хочу вызвать ID из пользовательского приложения в приложение Status как userID:

from user.models import User
class Task(models.Model)
    userID = models.ForeignKey(User, to_field="id", db_column="userID",  default="", editable=False,on_delete=models.CASCADE)
    #Other fields

Но я получаю эту ошибку в своем терминале:

django.db.utils.OperationalError: foreign key mismatch - "status_status" referencing "user_user"

Это журнал ошибок .

Также имя моей таблицы выглядит как status_status, user_user. Что я делаю не так?

Код модели пользователя:

from django.db import models
class User(models.Model):
    username = models.CharField(max_length=200)
    password = models.CharField(max_length=250)
    email = models.CharField(max_length=250)
    department = models.CharField(max_length=250)
    band = models.CharField(max_length=10)
    team = models.CharField(max_length=250)

Ниже приведен код модели состояния, где я хочу использовать идентификатор в качестве внешнего ключа:

from django.db import models
from user.models import User
class Status(models.Model):
    userID = models.ForeignKey(User, to_field="id", db_column="userID",  
                     default="",editable=False, on_delete=models.CASCADE)
    status = models.CharField(max_length=10)
    startDate = models.DateTimeField()
    endDate = models.DateTimeField()
    remark = models.CharField(max_length=250)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...