第77篇

Posted cavalier-chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第77篇相关的知识,希望对你有一定的参考价值。

 

1. 添加沟通记录的两个需求

1.1 customer字段里面选的客户只能是我私户里面的客户

  为form表单设置指定的choices

沟通记录的form
class ConsultRecordForm(BootstrapBaseForm):
    class Meta:
        model = ConsultRecord
        exclude = [‘delete_status‘, ]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 把customer字段的choice设置成我的客户
        print(self.instance, id(self.instance))
        print(‘&‘ * 120)
        # 方法一:修改字段的choices选项
        # self.fields[‘customer‘].choices = Customer.objects.filter(consultant=self.instance.consultant).values_list(‘id‘,‘name‘)
        # 方法二 将form表的字段直接修改
        self.fields[‘customer‘] = forms.models.ModelChoiceField(queryset=Customer.objects.filter(consultant=self.instance.consultant))
        self.fields[‘customer‘].widget.attrs.update({‘class‘: ‘form-control‘})

1.2 跟进人默认是自己

 form表单的字段设定默认值

# 添加和编辑沟通记录
def consult_record(request, edit_id=None):
    record_obj = ConsultRecord.objects.filter(id=edit_id).first()  # None
    if not record_obj:
        record_obj = ConsultRecord(consultant=request.user)  # 生成一个销售是我的ConsultRecord对象
        print(record_obj, id(record_obj))
        print(‘@‘ * 120)
    form_obj = ConsultRecordForm(instance=record_obj, initial={‘consultant‘: request.user})
    return render(request, ‘consult_record.html‘, {‘form_obj‘: form_obj, ‘edit_id‘: edit_id})

  

以上是关于第77篇的主要内容,如果未能解决你的问题,请参考以下文章

Python入门教程第77篇 格式化字符串F-strings

第77篇 ERC20-USDT智能合约

Python代码阅读(第19篇):合并多个字典

Python代码阅读(第26篇):将列表映射成字典

Python代码阅读(第41篇):矩阵转置

Python代码阅读(第40篇):通过两个列表生成字典