나는 Git을 버전 컨트롤로 사용하여 이전에 Python/Django 또는 Git을 사용하지 않고 Python/Django 프로젝트를 개발했다.Django- NoReverseMatch
내가 서버에 수행 한 몇 가지 변경 사항을 적용한 결과, 내가 변경 한 내용이 내가 작업하고 있던 버그를 수정했음을 알았습니다. (버그는 사용자가 선택한 날짜에 고정되거나 저장되지 않는 날짜 값과 관련이 있습니다. 날짜 중 하나를 페이지의 양식), 프로젝트의 다른 부분이 어떻게 든 ('AddsOmits'이라는 제목의 페이지가) 부러졌지만 ... 그 부분을 변경하지 않았으므로 확실하지 않습니다.
master
분기에 변경 사항을 병합하는 동안 발생했던 일부 오류로 인해 이전 커밋을 체크 아웃해야하므로 실제로 수정 된 부분이 프로젝트의 이전 버전에서 나왔을 수 있습니다. 그래서 이것은 이전 커밋에 존재했던 버그 일 수 있습니다.
저는 수정 사항을 업로드하기 전에 라이브 서버의 버전을 되돌려 놓았습니다. 현재 작업하고있는 '날짜'버그를 제외하고 지금은 작동 상태입니다.
내 로컬 컴퓨터에는 라이브 버전 (즉, '날짜'버그가있는 곳)과 동일한 master
과 dateReceived
(즉, '날짜'버그가 수정 된 곳) 하지만 'AddsOmits'페이지가 깨진입니다
내가 dateReceived
분기에 (브라우저에서 'AddsOmits'페이지에 저를해야 링크를 클릭
을인수 'export_csv' '(' ')'및 키워드 인자 '{}'을 (를) 찾을 수 없습니다에 대한비용/id/adds_omits의 NoReverseMatch
역 :
오류 메시지에서 '예외 값'는 다음과 같이 주어진다. 1 개 패턴 (들) 시도 : u'costing// 수출 CSV/$ '(P [0-9] +?)]
및 페이지 거기 Error during template rendering
이고, 말한다 :
템플릿 /Users/.../costing/templates/costing/adds_omits.html, 행에 오류에서 28 역 인수 'export_csv' '(' ')'및 키워드 인자 '{}'하지 않는 녹이다. 1 개 패턴 (들) 시도 : [u'costing// 수출 CSV/$ '(P [0-9] +?)]
라인이에 대해 불평 템플릿 (28)은 다음과 같습니다
<a class="button m-r-md" href="{% url 'costing:export_csv' budget.id %}">Export to Excel</a>
브라우저가 불평하는 오류가보기 costing:export_csv
에 대한 호출과 관련이 있으며 URL 패턴이 일치하지 않는 것 같습니다.
import csv
from django.utils.encoding import smart_str
def export_csv(request, budget_id):
budget = Budget.objects.get(id=budget_id)
items = budget.budget_items.all()
field_names = ('Build type', 'Build type detail', 'Item type client', 'Room', 'Name', 'Detail', 'Quantity', 'Unit', 'Cpu', 'Materials cost', 'Skill days', 'Labour days', 'Other unit', 'Other rate', 'Line margin', 'Total inc profit', 'Notes')
fields = ([1, 'get_build_type_display'], 'build_type_detail', 'item_type_client', [1, 'get_room_name'], 'name', 'detail', 'quantity', 'unit', 'cpu', 'materials_cost', 'skill_days', 'labour_days', 'other_unit', 'other_rate', 'line_margin', 'total_inc_profit', 'notes')
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=Budget-'+budget.project.project_code+'.csv'
writer = csv.writer(response, csv.excel)
response.write(u'\ufeff'.encode('utf8')) # BOM (optional...Excel needs it to open UTF-8 file properly)
writer.writerow([
smart_str(u""+field_name) for field_name in field_names
])
for obj in items:
row = []
for field in fields:
if field[0] == 1:
if hasattr(obj,field[1]): row += [smart_str(u""+plain_char(unicode(getattr(obj,field[1])() or '')))] # For methods such as get_build_type_display()
elif hasattr(obj,field): row += [smart_str(u""+plain_char(unicode(getattr(obj,field) or '')))]
writer.writerow(row)
return response
의 URL 패턴 : 내가 바로 내 편집기 (승화)에서 템플릿에 costing:export_csv
을 클릭하고 '고토 정의'를 선택하면
, 나는 비용/views.py에 view
정의로 이동하고 원가 계산/뷰에 정의 된 view
이라고합니다....
url(r'^(?P<budget_id>[0-9]+)/export-csv/$', views.export_csv, name='export_csv'),
하고 멀리 볼 수있는, 모든 (등 정의 & 통화) 정확하게 일치
은 내가 잘못 여기서 뭐하는 거지 : 평이다? 브라우저의 오류 메시지에있는 '예외 값'은 내가 어딘가에서 인수를 전달해야하거나 다른 전달하는/전달하지 않는 인수를 전달해야한다는 것을 나타내는 것 같습니다 ...?
이 예외의 이유는 무엇이며 어떻게 해결할 수 있습니까? 어떤 도움이라도 대단히 감사 할 것입니다.
def adds_omits(request, project_id):
project = Project.objects.select_related('variations').prefetch_related('variations__addomit_set','variations__addomit_set__item').get(id=project_id)
budget = get_current_budget(project_id)
try: v = project.variations
except ObjectDoesNotExist: v = Variations.objects.create(project=project)
adds_omits = project.variations.addomit_set.select_related('item', 'item__project_room', 'item__project_room__room').all().order_by('item__build_type', 'item__build_type_detail', 'item__project_room', 'item__order', 'item__id') #Needs id to prevent other ordering within groups
budget_items = BudgetItem.objects.select_related('addomit', 'addomit__variations', 'addomit__variations__project', 'project_room', 'project_room__room').filter(addomit__variations=v).order_by('build_type', 'build_type_detail', 'project_room', 'order', 'id') #Needs id to prevent other ordering within groups
item_formset = BudgetItemFormsetLite(queryset=budget_items, form_kwargs={"ao":True,'project':project})
ao_formset = AddOmitFormset(instance=v, queryset=adds_omits)
formsets = zip(list(item_formset.forms), list(ao_formset.forms))
for i_form in item_formset:
for field in i_form.fields:
if not field == 'id':
i_form.fields[field].widget.attrs['readonly'] = True
i_form.fields[field].widget.attrs['disabled'] = True
#Used to create new add omits
print 'Item form ini'
item_form = BudgetItemForm(project=project, template=1)
var_type_form = AoVariationTypeForm()
context = {
'project': project,
'formsets': formsets,
'ao_formset': ao_formset,
'item_formset': item_formset,
'var_type_form': var_type_form,
'item_form': item_form,
'widths': budget_item_column_widths[4:], #First column is add/delete options to allow for forloop count offset
'options_width': "5em", #First column is add/delete options to allow for forloop count offset
'widths_ao': add_omit_column_widths,
'widths_item': budget_item_column_widths, #First column is add/delete options to allow for forloop count offset
'labour_rate': labour_day_rate,
'skill_rate': skill_day_rate,
}
return render(request, 'costing/adds_omits.html', context)
변경 사항을 마스터 분기에 병합하는 동안 발생한 오류는 무엇입니까? 문제의 근원이 있고, 위의 코드와 아무런 관련이 없습니다. – Nevertheless
나는 병합 후에 오류가있는'master' 브랜치를 버렸고,'master'를이 버그에 대한 작업을 시작하기 직전에했던 커밋으로 바 꾸었습니다. 그래서'master' 브랜치는 현재 라이브 작업 버전. 필자가 OP에서 설명한 문제는'dateReceived' 브랜치에만 존재합니다.이 브랜치에서이 브랜치를 고쳐야합니다. 그러면'master'를 서버에 보내기 전에이 브랜치를'master'와 병합 할 수 있습니다. – someone2088