У меня раздражающая проблема с системой моделей 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
То, что я хочу сделать, это обновить все элементы «Note», когда 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 для тестирования