我有一个模型,MyModel
,与经理MyModelManager
,其中有一个create_mymodel(....)
方法:Django:使用自定义方法从ModelForm创建新对象,这可以吗?
def create_mymodel(self, foo, bar):
new_obj = MyModel(
foo = foo,
bar = bar,
# the rest of the fields are calculated
)
new_obj.save()
return new_obj
在其他地方我有一个ModelForm
创建新MyModel
对象。
在处理表单提交的视图中,我不想重复所有create_mymodel(foo, bar)
方法已经完成的计算,那么我可以这样做吗?
form = MyModelForm(request.POST or None)
if form.is_valid():
new_obj = form.save(commit=False)
MyModel.objects.create_myModel(new_obj.foo, new_obj.bar)
从文档,我担心什么the docs say有关使用f.save(commit=False)
,因为我不知道它是如何影响我的情况,特别是f.save_m2m()
事情。
计算字段的值,然后从父母中调用'create()'所有你想传入的值。 – yedpodtrzitko
也许我的问题不清楚。我已经在create()中进行了计算,我不想复制该代码。我关心的是使用'form.save(commit = False)' – 43Tesseracts