Django - передать данные из представления в Db, чтобы разрешить использование в представлении

def Scan(request):
 form = SubmitDomain(request.POST or None) # A form bound to the POST data
 if request.method == 'POST': # If the form has been submitted...
 if form.is_valid(): # If form input passes initial validation...
 domainNmCleaned = form.cleaned_data['domainNm'] ## clean data in dictionary
 form.save() #save cleaned data to the db from dictionary
 try:
 return HttpResponseRedirect('/Processscan/?domainNm=' + domainNmCleaned)
 except:
 raise ValidationError(('Invalid request'), code='invalid') ## [ TODO ]: add a custom error page here.
 else:
 form = SubmitDomain()

 return render(request, 'VA/index.html', {
 'form' : form
 })

def Processscan(request):
 EnteredDomain = request.get('domainNm', '')
 return HttpResponse("We got to the processor with domain: " + EnteredDomain)

Пожалуйста, успокойся, я все еще учусь :)

У меня проблема с GET, когда я использую POST, по моему первоначальному запросу для имени домена - я получаю:

'WSGIRequest' object has no attribute 'get'

на:

EnteredDomain = request.get('domainNm', '')
1 ответ

Вы можете вызвать scanprocess напрямую или просто передать его GET:

if form.is_valid(): # If form input passes initial validation...
 domainNm = form.cleaned_data['domainNm'] ## clean data in dictionary
 form.save() #save cleaned data to the db from dictionary

 try:
 return HttpResponseRedirect('/Scanprocess/?domainNm=' + domainNm)
 except:
 raise ValidationError(_('Invalid domain name'), code='invalid')

Тогда, на ваш взгляд, вы можете просто получить его через request.GET.get('domainNm', '')

И насколько я знаю, все, что вам нужно, это в urls.py:

url(r'^Scanprocess/$', name_of_view),

licensed under cc by-sa 3.0 with attribution.