나는 a question을 게시했지만 결과가 없습니다. 나는 그것을 제기 할 수 있습니다 두려워 ...Django Admin - 중개자 양식을 사용하여 추가
관리자에서, 나는 (사용자가 단순히 검색 필드와 버튼으로 구성되어있을 것입니다 다른 형태로 일반 양식보다 직접) . '검색'양식의 유효성을 검사 한 후 사용자는 표준 인스턴스 추가/변경 양식으로 인스턴스 데이터를 보냅니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?
나는 a question을 게시했지만 결과가 없습니다. 나는 그것을 제기 할 수 있습니다 두려워 ...Django Admin - 중개자 양식을 사용하여 추가
관리자에서, 나는 (사용자가 단순히 검색 필드와 버튼으로 구성되어있을 것입니다 다른 형태로 일반 양식보다 직접) . '검색'양식의 유효성을 검사 한 후 사용자는 표준 인스턴스 추가/변경 양식으로 인스턴스 데이터를 보냅니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?
그래서이 질문에 대한 답변이 부족한 Tumbleweeds 청동 색의 별이 있습니다. 나는, 추가 '추가'보기
from django import forms
from MyApp.models import MyModel
class LookupForm(forms.Form):
pk = ''
url = forms.URLField(max_length=_URLMAXLEN, label='Video URL',
widget=forms.TextInput(attrs={'size':'60', 'autofocus':'autofocus'}))
def clean_url(self):
value = self.cleaned_data['url']
# some validation of 'value' here
# ...
self.pk = somefoo(value)
return value
그리고 뷰에서
의 양식을 만들어 내 모델의 관리자def get_urls(self):
urls = super(MyModelAdmin, self).get_urls()
addl = patterns(',
(r'^add/$', 'MyApp.views.my_add_view)
)
return addl + urls
에 get_urls 방법 ... 다음과 같이 부분적으로 해결
을 종료 나는 CANN
from django.shortcuts import render
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from MyApp.forms import LookupForm
def my_add_view(request):
confirm = ''
if request.method == 'POST':
form = LookupForm(request.POST)
if form.is_valid():
if 'confirm_button' in request.POST:
foo_save() # save model instance
# LookupForm's 'pk' property set during some clean_ method
href = reverse('admin:MyApp_MyModel_change', args=(form.pk,))
return HttpResponseRedirect(href)
elif 'search_button' in request.POST:
confirm = foo_context() # some context from the search results
else:
form = LookupForm()
return render(request, 'my_template.html', {'form': form, 'confirm': confirm})
불행히도에게 모델 인스턴스의 유효성을 검사하고 저장 한 후 변경 양식에 리디렉션 인스턴스 데이터로 변경 양식을 표시하는 것을 목표로 삼습니다. change_form을 저장하고 리디렉션하는 대신, 직접 연결할 수 있기를 바랍니다. MyModelForm(instance=some_instance)