我是Django的新手,你能幫我理解save()方法的工作原理嗎?通過Django admin在ManyToManyField中添加值
這裏是我的模型:
class Tag(models.Model):
name = models.CharField(verbose_name=u'Tag', max_length=200, unique=True)
class Entry(models.Model):
title = models.CharField(verbose_name=u'Entry title', max_length=200)
# some more fields here
tags_string = models.CharField(verbose_name=u'Tags', max_length=200, blank=True)
tags = models.ManyToManyField(Tag, blank=True)
有tags_string
,其中用戶輸入以逗號分隔標籤。這只是一個字符串。
然後我試圖通過點擊「保存」在Django管理添加標籤ManyToManyField:
def save(self):
super(Entry, self).save()
if self.tags_string:
for tag in tags_string.split(","):
t = Tag.objects.create(name=tag)
self.tags.add(t)
,但它不工作。 entry.tags.add(t)
通過Django shell完美工作 - 它將值添加到數據庫。我認爲我的save()方法有問題。
您能否建議我如何解決它?
你在哪裏填寫'self.tags_string'? – juliomalegria
在django管理員。它只是一個CharField,稍後在save()方法中進行解析。 – elky
我會嘗試'打印self.tags_string' ..也許有問題。其他一切似乎都正確 – juliomalegria