Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django-更改ID字段_Django_Django Views - Fatal编程技术网

Django-更改ID字段

Django-更改ID字段,django,django-views,Django,Django Views,因此,我理解使用关键字-ID不是一个好的做法。因此,我尝试将下面的ID改为cid。然而,当我这样做时,我得到了:testing()得到了一个意外的关键字参数'id'。如果我把它从cid改回ID,一切正常。我做错了什么 def testing(request, cid): """Testing sheet for controls""" if request.method == "GET": testing_sheet = IsoControls.objects.g

因此,我理解使用关键字-ID不是一个好的做法。因此,我尝试将下面的ID改为cid。然而,当我这样做时,我得到了:testing()得到了一个意外的关键字参数'id'。如果我把它从cid改回ID,一切正常。我做错了什么

def testing(request, cid):
    """Testing sheet for controls"""
    if request.method == "GET":
        testing_sheet = IsoControls.objects.get(pk=cid)
        form = forms.ControlTesting(instance=testing_sheet)
        return render(request, 'controls_app/testing_sheet.html', {'form':form})
    else:
        testing_sheet = IsoControls.objects.get(pk=cid)
        form = forms.ControlTesting(request.POST, instance=testing_sheet)
        if form.is_valid():
            form.save()
        return render(request, 'controls_app/testing_sheet.html', {'form':form})
根据评论进行更新

我的网址是

urlpatterns = [
    path('', views.home, name='home'), 
    path('<int:id>', views.testing, name='testing') 
]
urlpatterns=[
路径(“”,views.home,name='home'),
路径(“”,views.testing,name='testing')
]
在我的html中

<td>
    <a href="{% url 'testing' control.id %}" class="btn text-secondary px-0"><i class="fas fa-edit"></i></a>
</td>

好的-所以这是一个愚蠢的错误。我在视图中将其更改为CID,但我还需要将URL partern更改为CID

网址:


在哪里调用
测试
?正在使用
id=something
调用它-这是您的问题。
def testing(request, pk):
    """Testing sheet for controls"""

    testing_sheet = IsoControls.objects.get(id=pk)
    form = forms.ControlTesting(instance=testing_sheet)
    if request.method=='POST':
       form = forms.ControlTesting(request.POST, instance=testing_sheet)          

           if form.is_valid():
              form.save()
              return redirect('../your_given_path_name')

    return render(request, 'controls_app/testing_sheet.html', {'form':form})
urlpatterns = [
    path('', views.home, name='home'), 
    path('<int:cid>', views.testing, name='testing') 
] 
def testing(request, cid):
    """Testing sheet for controls"""
    if request.method == "GET":
        testing_sheet = IsoControls.objects.get(pk=cid)
        form = forms.ControlTesting(instance=testing_sheet)
        return render(request, 'controls_app/testing_sheet.html', {'form':form})
    else:
        testing_sheet = IsoControls.objects.get(pk=cid)
        form = forms.ControlTesting(request.POST, instance=testing_sheet)
        if form.is_valid():
            form.save()
        return render(request, 'controls_app/testing_sheet.html', {'form':form})