在UpdateView的post方法中手动更新外键字段,可以通过以下步骤实现:
以下是一个示例代码:
from django.views.generic.edit import UpdateView
from .models import YourModel
from .forms import YourForm
class YourUpdateView(UpdateView):
model = YourModel
form_class = YourForm
template_name = 'your_template.html'
success_url = '/success_url/'
def post(self, request, *args, **kwargs):
response = super().post(request, *args, **kwargs)
# 获取外键字段的值
foreign_key_value = request.POST.get('foreign_key_field')
# 更新外键字段
self.object.foreign_key_field = foreign_key_value
self.object.save()
return response
在这个示例中,我们首先调用了父类的post方法,确保原有的更新逻辑得以执行。然后,通过request.POST获取到外键字段的值。接着,通过self.object获取到当前正在更新的对象,并使用获取到的外键字段的值,更新外键字段。最后,返回父类post方法的返回值。
需要注意的是,示例中的'foreign_key_field'需要替换为你实际的外键字段名。另外,还需要根据你的具体情况修改模型、表单类、模板和成功跳转的URL。
希望以上内容能够帮助到你!如果有任何疑问,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云