Django Как добавить внешний ключ пользователя внутри модели User?

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

class User(AbstractBaseUser, PermissionsMixin):
  name = models.CharField(max_length=255, default='John Doe')
  pet_sitter = models.ForeignKey('User',on_delete=models.CASCADE)//--->User inside User
  I tried get_user_model() it showed errors too//
  pet_appointments= models.ManyToManyField(
    'User',
    through=Booking,
    through_fields=('patient', 'doctor')
    )

class Booking(models.Model):
  start_date = models.DateTimeField()  
  end_date = models.DateTimeField()
  owner_of_pet = models.ForeignKey(get_user_model(),related_name = "User",on_delete=models.CASCADE, blank=True,null=True)
  sitter = models.ForeignKey('User', on_delete=models.CASCADE)

    

enter code here
===============

error
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'api.User' that has not been installed

  1. Похоже, что вы определили некоторые User в приложении api, поэтому добавьте это приложение к установленным приложениям в settings.py:
# settings.py
INSTALLED_APPS = [
    ...
    "api",

Кроме того, в действительности нет возможности или необходимости ссылаться на User таким образом.

Я представляю себе вашу models.py примерно так:

from api.models import CustomUser
from django.db import models


class Pet(models.Model):
    name = models.CharField(max_length=100)
    pet_sitter = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
    owner = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='pets', blank=True,null=True)

class Booking(models.Model):
    pet = models.ForeignKey(Pet, on_delete=models.CASCADE)
    start_date = models.DateTimeField()  
    end_date = models.DateTimeField()

Посмотрите исходный код здесь: https://github.com/almazkun/petshop

Вернуться на верх