【发布时间】:2018-04-21 00:16:34
【问题描述】:
我的 django 之旅进展缓慢,但这一次让我很困惑。我正在尝试通过使用 get_initial 覆盖的复制命令来填充具有不同模型的 CreateView。除了 ManytoMany 字段外,所有属性都按照我的预期复制。我今天大部分时间都在研究这个主题,并发现以下内容与我试图找出的内容非常接近KeyError: 'manager' in django get_initial。
我的观点...
class BookView(LoginRequiredMixin,CreateView):
model = Book
template_name = 'book/titles.html'
form_class = BookForm
def get_initial(self):
initial = super(BookView, self).get_initial()
author = author.objects.get(pk=self.kwargs["pk"])
initial = author.__dict__.copy()
initial.update({
"author": author.name,
}}
for field in self.form_class.base_fields.items():
value = getattr(self.get_object(), field)
if field == 'author':
value = self.get_object().author.all()
initial.update({field: value})
return initial
我根据我在 SO 上发现的问题合并了建议的更改,但我仍然得到一个“经理”KeyError。我最终试图在我的模型中填充 manytomanyfield,然后保存值,但无济于事. 任何建议都值得赞赏!
【问题讨论】:
标签: python-3.x django-models django-forms django-templates django-views