각 필드에 3 개의 모델이 있습니다. 2 모델의 경우, 데이터를 요청하기 위해 장고의 create_object를 통해 일반 폼을 사용하는 것이 좋습니다. 내가 모델명을 허용하고 일반적인 형태의 3 모델의 경우Django : 일반 ModelForm 또는 사전 정의 된 양식 표시
url(r'^add_(?P<modelname>\w+)/$', generic_add),
def generic_add(request, modelname):
mdlnm_model = models.get_model('catalog',modelname)
return create_object(request,
model = mdlnm_model,
template_name = 'create.html',
post_save_redirect = '/library/',
extra_context = {'func': 'Create ' + modelname},
login_required = 'True'
)
에 사용자를 보내는 기능을 쓴 나는 경우 사용자가이 모델의 필드 중 하나를 생략 할 수 있도록, I는 ModelForm 클래스 정의 양식을 본다.
url(r'^create_actor/$', create_object, Actor_Input, name='db_actor_create'),
Actor_Input = {
'form_class': ActorForm,
'template_name': 'create.html',
'post_save_redirect': '/library/',
'extra_context': {'func': 'Create Actor'},
'login_required': 'True'
}
class ActorForm(forms.ModelForm):
class Meta:
model = Actor
fields = ('name','age','height','short_description',
'long_description')
장고가 존재하는 경우 정의 된 ModelForm를 표시하지만, 정의 된 양식이 이루어진다 된 경우 그렇지 않으면 완전히 일반적인 양식을 표시 할 수있는 방법이 있나요? 나는 더 많은 모델을 만들 것으로 기대하고 있으며, 배우가되는 방식으로 분리되어야하는 모든 단일 모델에 대한 URL을 생성하지는 않을 것입니다.
그래서 다른 방법으로 generic_add 함수를 변경하여 ActorForm (있는 경우)을 사용하지만 generic ModelForm은 사용하지 않으려합니다. ActorForm 클래스의 존재 여부를 확인하는 방법을 알고 있지만, 동적 인 것으로하려면 어떻게해야할까요? 뭔가 같은 검사 : modelname + '폼'이 존재합니다. 나는 동적으로 사용자를 미리 정의 된 양식으로 보내는 방법을 확신 할 수 없다.
제안 사항? 이 문제를 볼 수있는 더 좋은 방법이 있습니까?
귀하의 설명에서 전반적으로 달성하고자하는 것을 따라 가는데 어려움을 겪고 있습니다. 당신은 당신이 지금까지 가지고있는 것을 볼 수 있도록 어딘가에 붙여 넣기 저장소에 관련 비트를 붙여 넣기가 편합니까? –
죄송합니다. 수정 된 질문 –