Django 如何将变量从函数添加到modelform

Django 如何将变量从函数添加到modelform,django,Django,我尝试将一个新变量URL从一个函数传输到一个模型表单。 在字母中,变量出现了,但形式是-保存一个空字符串 models.py views.py 若我正确理解了您的问题,那个么您需要在保存过程中将url值添加到实例中。在这种情况下,您可以使用表单的save参数更新新Instance,然后再将其保存到DB中: instance = model_form.save(commit=False) instance.urls = urls instance.save() 杰出的这正是我需要的 d

我尝试将一个新变量URL从一个函数传输到一个模型表单。 在字母中,变量出现了,但形式是-保存一个空字符串

models.py

views.py


若我正确理解了您的问题,那个么您需要在保存过程中将url值添加到实例中。在这种情况下,您可以使用表单的save参数更新新Instance,然后再将其保存到DB中:

instance = model_form.save(commit=False) 
instance.urls = urls
instance.save()    

杰出的这正是我需要的
def viewperson(request, slug):    
    trainer = Trainer.objects.get(slug = slug)
    urls = (reverse('trainers:viewperson', args=[slug]))
    if request.method == 'POST':
        model_form = ModelOrderForm(request.POST)
        if model_form.is_valid():
             subject = "New order"
        phone = model_form.cleaned_data['phone']
        name = model_form.cleaned_data['name']
        text = model_form.cleaned_data['text']
        email = model_form.cleaned_data['email']
        recipients = [mail@gmail.com']
        message = name + " "  +" "+ phone +  " " + "site.com"+urls +" "+ text

            if result['success']:
                try:
                    model_form.cleaned_data['urls']=urls #Here i try to send urls in forms urls-field 
                    instance = model_form.save()    
                    send_mail(subject, message, email, recipients)
                    return redirect('thanks_for_order')
                except BadHeaderError:
                    return HttpResponse('Invalid header found')
            else:
                messages.error(request, 'Error reCAPTCHA. Tray again.')
                return redirect('trainers:viewperson' , slug=slug)
    else:           
        model_form = ModelOrderForm()
    return render(request, "trainer_person.html", {'trainer':trainer,
                                                    'model_form':model_form,})
instance = model_form.save(commit=False) 
instance.urls = urls
instance.save()