考虑以下代码:
views.py
class BHA_UpdateView(UpdateView):
model = BHA_overall
pk_url_kwarg = 'pk_alt'
form_class = BHA_overall_Form
据我了解,pk_url_kwarg = 'pk_alt'
将查询并返回model = BHA_overall
的实例。
有什么方法可以强制pk_url_kwarg
进行查询
并返回models.py
中定义的其他模型实例(如model = other_model
),同时使用我的get_object()
方法返回model = BHA_overall
中的对象?我应该使用什么CBV(我认为UpdateView
在这种情况下不是一个好选择)?
++我正在尝试制作一个页面,允许用户管理有关他们使用的产品的信息。因此,最终我将实现表单,并且用户输入需要保存在DB
++我需要pk_url_kwarg = 'pk_alt'
来查询其他模型并生成url。但是我仍然需要get_object()
方法来返回model = BHA_overall
中的对象以在用户端生成表单字段。
答案 0 :(得分:1)
据我了解,您需要从BHA_overall生成的django表单,但是数据应该保存到AnotherModel吧?
我将针对此问题提出2种解决方案,选择最适合您的问题。
多个视图: 对于该任务有多个视图,我的意思是创建一个视图,该视图使用BHA_overall为前端创建表单,您可以通过这种方式创建Create和Update视图,并且update视图的初始名称可能会被覆盖,因此表单在编辑时将具有预期的值。现在将数据发布到另一个处理发布数据的视图中。该视图可以让您的AnotherModel起作用。
使用Django表单: 如果您不喜欢有多个视图,则可以通过自己创建表单来简化事情。用要显示给用户的相同字段创建一个DjangoForm并将其用于创建自己的视图,现在您将不需要BHA_overall并使用AnotherModel来保存数据。