【发布时间】:2019-07-01 23:54:39
【问题描述】:
当用户更改对象的 URL 时,应删除该对象并创建一个新对象:
### other fields here ###
issue = models.ManyToManyField(Issue, null=False, blank=False,)
def __init__(self, *args, **kwargs):
super(MyModel, self).__init__(*args, **kwargs)
self.__original_url = self.url
def save(self, *args, **kwargs):
if self.url != self.__original_url:
my_new_object = MyModel.objects.create(####)
my_new_object.save()
my_new_object.issue.add(self.issue)
问题是 self.issue 正在重新调整 None。 我也试过了
my_new_object.issue.add(MyModel.objects.get(pk = self.id).issue)
同样的事情。 这有什么问题?
【问题讨论】:
-
您确定在将
self.issue添加到新的my_new_object实例时已填充它吗?另外你确定你的代码被执行了,比如它是否通过if self.url != self.__original_url检查? -
如果通过了测试,所以代码被执行,m2m问题被填充但它返回None。这就是问题所在。
标签: django django-models many-to-many