у меня раздражающая проблема с системой моделей django + ее администратором по умолчанию.
Предположим, у меня есть очень простая модель, например:
class Note(models.Model):
text = models.CharField(max_length=200)
def __unicode__(self):
return self.text
и контейнер типа:
class NoteCollection(models.Model):
notelist = models.ManyToManyField(Note)
title = models.CharField(max_length=20)
def __unicode__(self):
return self.title
Что я хочу сделать, так это обновить все элементы «Примечание» при добавлении NoteCollection. Я читал, что модели m2m имеют сложный механизм сохранения, поэтому я подумал, давайте прочитаем объект формы и просто сохраним элементы Note самостоятельно!
Но когда я делаю что-то подобное в APPNAME/admin.py:
from models import Note,NoteCollection
from django.contrib import admin
class NoteCollectionAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
# Something USEFUL HERE
pass
admin.site.register(Note)
admin.site.register(NoteCollection, NoteCollectionAdmin)
Django выдает мне сообщение об ошибке: (экземпляр «NoteCollection» должен иметь значение первичного ключа, прежде чем можно будет использовать отношение «многие ко многим».)
Я вообще не хочу использовать объект NoteCollection, на самом деле меня интересует объект формы..
Я также нашел в Интернете несколько примеров, в которых используется save_model с полем M2M, поэтому я не могу понять, почему я продолжаю получать эту ошибку; для справки, я только что сделал новый проект из металлолома и использую sqlite db для тестирования