Django-强制pk_url_kwarg查询其他模型实例

时间:2018-07-25 02:24:59

标签: django django-models django-views

考虑以下代码:

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中的对象以在用户端生成表单字段。

1 个答案:

答案 0 :(得分:1)

据我了解,您需要从BHA_overall生成的django表单,但是数据应该保存到AnotherModel吧?

我将针对此问题提出2种解决方案,选择最适合您的问题。

  1. 多个视图: 对于该任务有多个视图,我的意思是创建一个视图,该视图使用BHA_overall为前端创建表单,您可以通过这种方式创建Create和Update视图,并且update视图的初始名称可能会被覆盖,因此表单在编辑时将具有预期的值。现在将数据发布到另一个处理发布数据的视图中。该视图可以让您的AnotherModel起作用。

  2. 使用Django表单: 如果您不喜欢有多个视图,则可以通过自己创建表单来简化事情。用要显示给用户的相同字段创建一个DjangoForm并将其用于创建自己的视图,现在您将不需要BHA_overall并使用AnotherModel来保存数据。