Я пытаюсь установить начальное значение поля формы с моей точки зрения.Я прочитал документацию и некоторые другие вопросы здесь, и я не могу определить, почему мой случай не работает.
В одной форме (CreateOrderForm) я ввожу значение для поля 'reference'.В моем следующем представлении я использую .get для извлечения этого ввода, а затем пытаюсь установить по умолчанию поле «ссылка» в CreateManifestForm таким же.Я не получаю ошибки, но никакое значение не приходит.
Вот что я пытаюсь сделать:
FORMS.PY
class CreateOrderForm(forms.ModelForm):
class Meta:
model = Orders
fields = ('reference', 'ultimate_consignee', 'ship_to', 'vessel', 'booking_no', 'POL',
'DOL', 'COO', 'POE', 'ETA', 'pickup_no', 'terms', 'sales_contact', 'trucking_co', 'loading_loc', 'inspector', 'total_cases', 'total_fob', 'freight_forwarder', 'commodity', 'is_airshipment', 'credit')
class CreateManifestForm(forms.ModelForm):
class Meta:
model = Manifests
fields = ('reference', 'cases', 'description', 'count')
URLS.PY
url(r'^add_manifest/(?P<reference_id>\d+)/$', add_manifest, name='add_manifest')
VIEWS.PY
def add_order(request):
if request.method == "POST":
form = CreateOrderForm(request.POST)
if form.is_valid():
reference_id = form.cleaned_data.get('reference')
form.save()
return redirect('add_manifest', kwargs={'reference_id': reference_id})
else:
form = CreateOrderForm()
objectlist = Customers.objects.all()
context = {
'form': form,
'objectlist': objectlist,
}
return render(request, 'add_order.html', context)
def add_manifest(request, reference_id):
if request.method == "POST":
form = CreateManifestForm(request.POST)
if form.is_valid():
form.save()
return redirect('add_manifest')
reference_id = request.POST.get('reference')
form = CreateManifestForm(initial={'cases': reference_id})
manifests = Manifests.objects.all().filter(reference=reference_id)
context = {
'form': form,
'manifests': manifests,
}
return render(request, 'add_manifest.html', context)
Я ожидаю, что поле ссылки в представлении add_manifest будет равно значению, введенному в 'reference' в CreateOrderForm, но я просто ничего не получаю.
TRACEBACK
Файл "/Library/Python/2.7/site-packages/django/core/handlers/exception.py" во внутренней 39. response = get_response (request)
Файл "/Library/Python/2.7/site-packages/django/core/handlers/base.py" в _get_response 187. response = self.process_exception_by_middleware (e, request)
File "/Библиотека / Python / 2.7 / site-packages / django / core / handlers / base.py "в _get_response 185. response = wrapped_callback (запрос, * callback_args, ** callback_kwargs)
Файл" / Users / andrews /Рабочий стол / WBU / web_unit / unit / views.py "в add_order 61. return redirect ('add_manifest', kwargs = {'reference_id': reference_id})
Файл "/Library/Python/2.7/site-packages/django/shortcuts.py" в редиректе 56. return redirect_class (resol_url (to, * args, ** kwargs))
File"/Library/Python/2.7/site-packages/django/shortcuts.py" в resol_url 147. вернуть в обратном порядке (to, args = args, kwargs = kwargs)
File "/Library/Python/2.7/site-packages / django / urls / base.py "в обратном порядке 91. return force_text (iri_to_uri (resolver._reverse_with_prefix (view, prefix, * args, ** kwargs)))
File" / Library / Python/2.7/site-packages/django/urls/resolvers.py "в _reverse_with_prefix 389. (lookup_view_s, args, kwargs, len (pattern), Patterns)
Тип исключения: NoReverseMatch at / add_order Значение исключения: Reverseдля 'add_manifest' с аргументами '()' и аргументами ключевых слов '{' kwargs ': {' reference_id ': u'45643'}} 'не найдено.Попробован 1 шаблон (ов): ['add_manifest / (? P \ d +) / $']