在Mixin中为不同的模型获取“对象”或“创建”

2024-09-27 02:23:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Mixin,它允许我更新我已经创建的对象,问题是我有太多的模型,每个模型都有不同的字段,这个Mixin在找不到对象时返回404,我需要在找不到对象时返回用于创建与predio_id对象关联的对象的表单,我尝试过使用get_object_or_create,但是用这种方法我必须通过每一个领域。如何实现在对象未找到的情况下,返回相应的空表单进行创建呢?在

class UpdateModelMixin(object):
    def get_object(self):
        return get_object_or_404(self.model,predio_id=self.kwargs['predio_id'])

它被称为这样的视图:

^{2}$

注意,我在这里写的UpdateView只是我拥有的30到40个UpdateView中的一个,因为每个UpdateView调用不同的表单和模板


Tags: or对象方法模型selfid表单get
1条回答
网友
1楼 · 发布于 2024-09-27 02:23:21

这很简单,因为get_或_create返回一个元组,只需在查询的末尾添加[0]:

class UpdateModelMixin(object):
    def get_object(self):
        return Persona.objects.get_or_create(predio_id=self.kwargs['predio_id'])[0]

相关问题 更多 >

    热门问题