【发布时间】:2019-11-22 10:56:01
【问题描述】:
我已扩展 django-taggit TagBase 模型以包含 added_by 字段作为 User 的 ForeignKey:
class TagBase(models.Model):
name = models.CharField(verbose_name=_("Name"), unique=True, max_length=100)
slug = models.SlugField(verbose_name=_("Slug"), unique=True, max_length=100)
added_by = models.ForeignKey(User, on_delete=models.CASCADE)
一切都很好,但是我在从我的 CreateView 填充该字段时遇到了问题。这是我尝试过的:
class NoteCreateView(LoginRequiredMixin, CreateView):
model = Note
fields = [
'title',
'description',
'notebook',
'tags'
]
def form_valid(self, form):
form.instance.added_by = self.request.user
form.instance.save()
for tag in form.instance.tags.all():
tag.added_by = self.request.user
return super().form_valid(form)
但我收到一个错误:
IntegrityError at /notes/1/create/ NOT NULL constraint failed: taggit_tag.added_by_id
如何在我的标签实例上正确地自动填充 added_by 字段?
【问题讨论】:
标签: python django django-taggit