为了账号安全,请及时绑定邮箱和手机立即绑定

从Django ModelForm运行查询

从Django ModelForm运行查询

红颜莎娜 2021-03-30 13:08:21
我可以使用以下现有代码(我仅包含相关部分)。models.pyclass Customer(models.Model):    customer_id = models.CharField(primary_key=True, max_length=16)    account_phone = PhoneNumberField(null=True, blank=True, max_length=255)    display_phone = PhoneNumberField(null=True, blank=True, max_length=255)    .    .    .客户.py@render_to('customer/edit.html')def edit(request, customer_id):    customer = Customer.objects.get(customer_id=customer_id)    if not request.POST:        return dict(form=CustomerForm(instance=customer))    submit = request.POST.copy()    submit['customer_id'] = customer.customer_id    form = CustomerForm(submit, instance=customer)    if not form.is_valid():        return dict(form=form)    _f = form.save(commit=False)    _f.save()class CustomerForm(ModelForm):    .    .    .    def __init__(self, *args, **kwargs)        super(CustomerForm, self).__init__(*args, **kwargs)        .        .    class Meta:        model = Customer我需要在CustomerForm中添加一个名为的查询,该查询assigned_numbers将使我能够从中获取电话号码account_phone并与display_phone关联customer_id。我对如何正确运行查询感到困惑,不胜感激任何建议。如果我需要提供更多信息,请告诉我。
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

您的表单是的模型表单customer,因此它将具有account_phone和的字段,display_phone除非您以排除它们的方式指定了字段。


如果您除了需要根据他们的客户实例开始填充他们的字段之外,还需要对他们做一些事情,那么您可以访问form.instance.account_phone或进行其他操作。


如果由于某种原因更方便,则在您的__init__方法中,您可以访问instance从kwargs以查找值。


def __init__(self, *args, **kwargs)

    super(CustomerForm, self).__init__(*args, **kwargs)

    if 'instance' in kwargs:

        self.assigned_numbers = (instance.account_phone, instance.display_phone)


查看完整回答
反对 回复 2021-04-01
  • 1 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信