Собственно есть модель новости, установил ckeditor (это не очень важно, можете представить обычное поле, но с обработчиком), поставил его как поле в модель. При открытии в админке нужно, чтобы в поле ckeditor передавался ид этой новости.
from django.db import models
from ckeditor_uploader.fields import RichTextUploadingField
# вот примерно как сейчас
class Page( models.Model ):
title = models.CharField( verbose_name="Заголовок")
content = RichTextUploadingField( verbose_name="Текст" )
# вот как хотелось бы, но так не выйдет, т.к. объекта еще нет, всего лишь описывается класс
class Page( models.Model ):
title = models.CharField( verbose_name="Заголовок")
content = RichTextUploadingField( verbose_name="Текст", page_id=self.id )
Совсем запутался уже в классах, не пойму с какого конца начать, т.к. всё управление объектами происходит в view админки, но по-хорошему его бы не трогать, хочется написать код модели\поля так, чтобы их объекты сами разобрались.
# дополнение
Получить ид я могу только после создания объекта модели (не путаем с записью в бд). Джанго парсит мое описание Page, создает переменные, и только после этого я могу получить доступ к ключу. Вопрос в том, как получить и передать ключ в поле до того, как джанго начнет парсить мое описание класса.
class Page( models.Model ):
title = models.CharField( verbose_name="Заголовок")
content = RichTextUploadingField( verbose_name="Текст" )
def __init__(self, *args, **kwargs):
#print(self.id) # AttributeError: 'Page' object has no attribute 'id'
super(Page, self).__init__(*args, **kwargs)
print(self.id) # выведет ид