maximkv25
@maximkv25
web-developer

Как сделать свзяь many-to-one в базовой модели User?

Добрый день, пытаюсь сделать связь со стандартной моделью User в django. Использовал и sqlite3 и mysql.

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

class Post(models.Model):
    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)
    like = models.BigIntegerField(default=0)
    text = models.TextField(max_length=1000, blank=True, default='')


Ошибка
-> post = Post.objects.create(owner=user, text=text)
(Pdb) n
django.db.utils.IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`starnavi`.`post_post`, CONSTRAINT `post_post_owner_id_d5aa4d97_fk_accounts_user_id`
 FOREIGN KEY (`owner_id`) REFERENCES `accounts_user` (`id`))')
> /home/maxim/dev/projects/starnavi/app/app/post/serializers.py(61)validate()
-> post = Post.objects.create(owner=user, text=text)
(Pdb)


1. Нельзя связывать базовую модель с другими?
2. Как это можно решить?
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
belchenko
@belchenko
Я думаю вы должны делать привязку не к модели, а к конкретному ключу, например User.id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы