나는 다음보기가이처럼django-python : NoReverseMatch 문제 : 어떤 인수를 주어야합니까?
def default_detail (request, equipment_id):
equipment = Equipment.objects.get(id = equipment_id)
context = {'equipment' : equipment}
return render(request, 'calbase/default_detail.html', context)
def default_add_cal (request, equipment_id):
equipment = get_object_or_404(Equipment, id = equipment_id)
EquipmentInlineFormSet = inlineformset_factory(Equipment, Calibration, fields = ('cal_by', 'cal_date', 'notes'), extra = 1,)
if request.method == "POST":
if 'calibration' in request.POST:
formset = EquipmentInlineFormSet(request.POST, request.FILES, instance=equipment)
if formset.is_valid():
return HttpResponseRedirect(reverse('calbase:default_detail', args=(equipment_id)))
else:
formset = EquipmentInlineFormSet(instance=equipment)
return render(request, 'calbase/default_detail_cal.html', {'formset' : formset, 'equipment' : equipment})
및 URL :
이urlpatterns = [
url(r'^$', views.default, name = 'default'),
url(r'^default/(?P<equipment_id>[0-9]+)/$', views.default_detail, name = 'default_detail'),
url(r'^default/new/$', views.default_new, name = 'default_new'),
url(r'^default/(?P<equipment_id>[0-9]+)/cal/$', views.default_add_cal, name = 'default_add_cal'),
]
및 default_add_cal의 템플릿, default_detail_cal.html 같은 수 있습니다 :
{% block content %}
<form method="POST" action = "{% url 'calbase:default_add_cal' equipment.id %}">{% csrf_token %}
{{ formset }}
<button type="submit" class="save btn btn-default" name = "calibration">Save</button>
</form>
<a href="{% url 'calbase:default' %}">Back?</a>
{% endblock %}
그래서 교정은 장비에 대한 외래 키 : 장비에 여러 가지 교정이있을 수 있으며, 여기서 인라인 폼 세트를 사용하여 사용자가 장비에 교정을 추가 할 수있게하려고합니다. .
에서NoReverseMatch/calbase/기본/41/칼/ 인수 'default_detail'에 대한 역 '('4 ','1 ')'및 키워드 인자 '{}': 문제는이를 가지고 있다는 것입니다 찾을 수 없습니다. 1 개 패턴 (들) 시도 : 'calbase/기본// $ (P [0-9] +?)']
나야 혼란이 예를 들어, 기기 ID = 41, I는
을위한return HttpResponseRedirect(reverse('calbase:default_detail', args=(equipment_id)))
실제로 전달되는 인수는 41 대신 '('4 ','1 ')입니다. 어떻게 될 수 있습니까? 이 문제를 어떻게 해결해야합니까? 덕분에
고마워요! 내 문제를 해결했다. 이 기능에 대해 좀 더 자세히 설명해 주시겠습니까? ","제발? –
@HansongLi 튜플이 정의되는 방식입니다. 싱글 톤 튜플을 만들려면 해당 쉼표를 추가해야합니다. 몇 가지 코드를 추가했습니다. 그게 충분하면 알려주지. –
오, 그거 분명해. 정말 고마워! –