You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django的UpdateView中获取当前对象及user_guid字段数据?

在Django UpdateView中获取当前对象的user_guid字段

你可以通过UpdateView自带的get_object()方法直接获取当前正在编辑的Campaigns对象,进而拿到user_guid字段的值。以下是具体实现方式:

1. 在get_context_data方法中获取(适用于传递到模板或上下文处理)

修改你的CampaignEditor类的get_context_data方法,加入获取对象的逻辑:

class CampaignEditor(UpdateView):
    model = Campaigns
    template_name = 'mailsinfo/add_campaign.html'
    form_class = CampaignsForm

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        # 获取当前编辑的Campaign对象
        current_campaign = self.get_object()
        # 提取user_guid字段
        user_guid = current_campaign.user_guid
        
        # 可选:将user_guid传入上下文,供模板使用
        context['current_user_guid'] = user_guid
        
        # 保留你原有的逻辑
        data = list(Emails.objects.values())
        data = MailsTableWithoutPass(data)
        context['data'] = data
        return context

2. 在其他方法中获取(比如保存前的form_valid方法)

如果需要在表单验证通过、保存数据前使用user_guid,可以在form_valid方法中获取:

class CampaignEditor(UpdateView):
    # ... 其他原有配置 ...

    def form_valid(self, form):
        # 获取当前对象的user_guid
        current_campaign = self.get_object()
        user_guid = current_campaign.user_guid
        
        # 这里可以加入你的自定义逻辑,比如根据user_guid关联其他数据
        # 示例:过滤该用户的邮件
        # user_emails = Emails.objects.filter(user_guid=user_guid)
        
        return super().form_valid(form)

说明

  • get_object()方法会自动根据URL中配置的主键参数(通常是pk或slug)查询并返回对应的Campaigns实例,确保你URL配置正确即可正常使用。
  • 如果你不需要把user_guid传递到模板,仅在视图内部使用,直接用变量存储后处理即可。

内容的提问来源于stack exchange,提问作者juniorDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:55:27