Как в ForeignKey сделать дефолтный pk?

Хочу сделать чтобы поле book автоматически заполнялось pk книги, на которой пишется комментарий. Возможно ли это как-то сделать? Вот мои модели: models:

from django.db import models
from django.shortcuts import reverse


class Book(models.Model):
    title = models.CharField('Название', max_length = 200)
    author = models.CharField('Автор(ы)', max_length = 300)
    date_create = models.DateField('Дата написания')
    date_edit = models.DateField('Дата издания')
    pages = models.PositiveIntegerField('Кол-во страниц')
    age_limit = models.PositiveBigIntegerField('Возрастное ограницение')

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('book_detail', kwargs={'pk': self.pk})

class Comment(models.Model):
    title = models.CharField('Заголовок', max_length=140)
    book = models.ForeignKey(
        Book,
        on_delete=models.CASCADE,
        related_name='books',
    )

    name = models.CharField('Имя', max_length=100, default='Аноним')
    email = models.CharField('Электронная почта', default='Нет', max_length=200)
    body = models.TextField('Комментарий')
    created_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'Комментарий'
        verbose_name_plural = 'Комментарии'

Вот одни из моих попыток сделать это:

  1. Всегда выбирается 1 pk книги, независимо от той, на странице которой находится пользователь:

    class Comment(models.Model):
        title = models.CharField('Заголовок', max_length=140)
        book = models.ForeignKey(
             Book,
             on_delete=models.CASCADE,
             default = Book.pk
             related_name='books',
         )
    
  2. Сработало немного не так, как планировалось. Но результат тот же, что и в прошлом способе.

    class Book(models.Model):
    --------
        def get_book_pk():
            return book.object.get(id=1)
    
    class Comment(models.Model):
        title = models.CharField('Заголовок', max_length=140)
        book = models.ForeignKey(
           Book,
           on_delete = models.CASCADE,
           default = Book.get_book_pk,
           related_name='books',
       )
    
Вернуться на верх