,可以通过以下步骤实现:
下面是一个示例代码:
from django.views.generic.edit import CreateView
from django.urls import reverse_lazy
from .models import ParentModel, ChildModel
from .forms import ChildModelForm
class ChildCreateView(CreateView):
model = ChildModel
form_class = ChildModelForm
template_name = 'child_create.html'
success_url = reverse_lazy('parent_detail')
def form_valid(self, form):
parent_id = self.kwargs['parent_id']
parent = ParentModel.objects.get(id=parent_id)
child = form.save(commit=False)
child.parent = parent
child.save()
return super().form_valid(form)
在上面的代码中,ChildCreateView是一个继承自CreateView的视图类。它使用ChildModel作为模型类,ChildModelForm作为模型表单类。成功保存后,将重定向到名为'parent_detail'的URL。
在form_valid()方法中,我们获取到了通过URL传递的parent_id,并使用它来获取到对应的ParentModel对象。然后,我们将这个对象赋值给新创建的ChildModel对象的外键字段parent,并保存到数据库中。
这样,当用户提交表单时,对象将被添加到特定的外键中。
请注意,上述示例中的模型和表单类是示意性的,你需要根据自己的项目需求进行相应的调整。
推荐的腾讯云相关产品:腾讯云云服务器(CVM),腾讯云数据库MySQL版(TencentDB for MySQL),腾讯云对象存储(COS),腾讯云容器服务(TKE)。
更多腾讯云产品介绍和详细信息,请访问腾讯云官方网站:https://cloud.tencent.com/
领取专属 10元无门槛券
手把手带您无忧上云