繁体   English   中英

Django 将一个 url kwarg 传入一个表单。

[英]Django pass a url kwarg into a form.Form

我正在尝试从 url 获取表单的初始值。表单 class 表单。

网址.py

path('nueva/<client_id>/', new_check_view, name='nueva valoración'),

视图.py

def new_check_view(request, client_id):
    my_form = NewCheckForm()
    # print (client_id)
    if request.method == "POST":
        my_form = NewCheckForm(request.POST)
        if my_form.is_valid():
            Check.objects.create(**my_form.cleaned_data)
        else:
            print(my_form.errors)
    
    context = {
    "form": my_form
    }
    return render (request, 'checks/new-check.html', context)

forms.py

class NewCheckForm(forms.Form):
    user_id = forms.ModelChoiceField(
        label='Nombre',
        queryset= Client.objects.all(), 
        initial=client_id,
        )

但是,我不知道如何将这些 kwargs 从视图传递到 class 表单。

您应该使用initial参数。 对于您的代码:

from django.shortcuts import get_object_or_404

def new_check_view(request, client_id):
    client = get_object_or_404(Client, pk=client_id)
    my_form = NewCheckForm(initial={'user_id': client})

记得从NewCheckForm中删除initial=client_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM