Ошибка несоответствия внешних ключей Django, не позволяющая классам иметь отношение в базе данных - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь добавить внешний класс в класс сообщений, чтобы у каждого человека могло быть несколько сообщений, я продолжаю получать ошибку несоответствия внешнего ключа. Таблицы пусты. Я не понимаю, в чем здесь проблема.

"""
Definition of models.
"""

from django.db import models

# Create your models here.

class Users(models.Model):
   name = models.CharField(primary_key=True, max_length=30)

class Posts(models.Model):
     priority = models.CharField(max_length=30)
     client = models.CharField(max_length=30)
     title = models.CharField(max_length=150)
     assigned_to = models.ForeignKey(Users, on_delete=models.CASCADE)
     exp_comp_time = models.FloatField(max_length=4)
     percent_comp = models.FloatField(max_length=4)
     post_date = models.CharField(max_length=20)
     due_date = models.CharField(max_length=20)
     latest_mod = models.CharField(max_length=20, null=True)


>>> newPost = Posts(priority="low", client="maserati", title="models", 
assigned_to=newUser.name, exp_comp_time=5.5, percent_comp=75.2, 
post_date="6/25/19", due_date="7/1/19")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File 
repos\DjangoWebProject1\DjangoWebProject1\office_proj_en 
v\lib\site-packages\django\db\models\base.py", line 483, in __init__
_setattr(self, field.name, rel_obj)
File 
repos\DjangoWebProject1\DjangoWebProject1\office_proj_en 
v\lib\site-packages\django\db\models\fields\related_descriptors.py", line 
211, 
in __set__
self.field.remote_field.model._meta.object_name,
ValueError: Cannot assign "'Dave'": "Posts.assigned_to" must be a "Users" 
instance.


>>> newPost = Posts(priority="low", client="maserati", title="models", 
assigned_to="Dave", exp_comp_time=5.5, percent_comp=75.2, 
post_date="6/25/19", due_date="7/1/19")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File 
repos\DjangoWebProject1\DjangoWebProject1\office_proj_en 
v\lib\site-packages\django\db\models\base.py", line 483, in __init__
_setattr(self, field.name, rel_obj)
File 
repos\DjangoWebProject1\DjangoWebProject1\office_proj_en 
v\lib\site-packages\django\db\models\fields\related_descriptors.py", line 
211, in __set__
self.field.remote_field.model._meta.object_name,
ValueError: Cannot assign "'Dave'": "Posts.assigned_to" must be a "Users" 
instance.

Когда я иду на миграцию, я получаю эту ошибку: django.db.utils.operationalError: несоответствие внешнего ключа - «app_posts» ссылается на «app_users»

...