2017-01-05 6 views
0

: 내가 주변에 30 개 이상의 모델을 가지고이 같이어떻게 장고 모델에서 개별 필드를 얻을? 내 장고의 models.py에서

class Agent1(models.Model): 
    show_name = models.CharField(db_column='Show_Name', max_length=100,null=True) 
    exhibiting_company_name = models.CharField(db_column='Exhibiting_Company_Name', max_length=100,null=True) # Field name made lowercase. 
    company_website = models.CharField(db_column='Company_Website', max_length=100,null=True) # Field name made lowercase. 
    company_generic_email = models.EmailField(db_column='Company_Generic_Email', max_length=100,null=True) # Field name made lowercase. 

class Agent2(models.Model): 
    show_name = models.CharField(db_column='Show_Name', max_length=100,null=True) 
    exhibiting_company_name = models.CharField(db_column='Exhibiting_Company_Name', max_length=100,null=True) # Field name made lowercase. 
    company_website = models.CharField(db_column='Company_Website', max_length=100,null=True) # Field name made lowercase. 
    company_generic_email = models.EmailField(db_column='Company_Generic_Email', max_length=100,null=True) # Field name made lowercase. 

이 내가 가지고있는 20 개 필드 내 new_data.html 파일에

&

을 통해 내가 가진 몇 가지 필드입니다 :

<form method="post"action="">{% csrf_token %} 
{{ form.as_p}} 
<input type="submit" name="" value="Submit"> 
</form> 

예 : html 템플릿에 show_name 및 exhibiting_company_name을 form.py에 사용자 정의 양식을 만들지 않고 있습니까?

<form action="demo_form.asp"> 
    Show Name: <input type="text" name="sname"><br/> 
    Company Name: <input type="text" name="cname"><br/> 
    <input type="submit" value="Submit"> 
</form> 

:

이 같은 <input> 태그에 개별적으로 내 모델 필드를 호출 할 수있는 방법이 있습니까?

답변

0

문제를 올바르게 이해했다면 템플릿의 특정 필드 만 표시해야합니다. 이를 위해 모든 형태의 필드 (docs 참조) 반복 특정 이름 만 표시 할 수 있습니다

<form method="post" action=""> 
{% csrf_token %} 
{% for field in form %} 
    {% if field.name == "show_name" or field.name == "exhibiting_company_name" %} 
     {{ field }} 
    {% endif %} 
{% endfor %} 
<input type="submit" value="Submit"> 
</form> 
+0

덕분에 그게 그렇게 간단하게 생각하지 않았다 그것에 대해 당신을 도와 주셔서 감사합니다 :) –

+0

이 일을 끝내고 데이터베이스를 업데이트하지 –

+0

@pratirupmukherjee 님이 귀하의 견해를 공유 할 수 있습니까? – neverwalkaloner

1

만 해당 필드를 표시 할 경우, 즉 아주 쉽게 :

<form method="post" action=""> 
    {{ form.show_name }}<br/> 
    {{ form.exhibiting_company_name }}<br/> 
    <input type="submit" value="Submit"> 
</form> 

그러나이 유일한 필수 필드가 아닌 경우 양식이 유효성을 검사하지 않으며 오류 메시지를 표시하지 않는 이유를 알 수 없습니다.

IOW, 은 사용자 지정 양식을 정의해야합니다. 하지만 실제로는 forms.ModelForm을 사용하면 몇 줄의 코드 일뿐입니다.

"Model1", "Model2, (...)"과 같은 스키마를 가진 두 개 이상의 모델이있는 경우 ModelN은 거대한 디자인 냄새입니다. 스키마, 그들은 하나의 단일 모델 (그리고 데이터베이스 수준에서 하나의 단일 테이블)입니다.

+0

테이블은 내 응용 프로그램이 Agent3s \t 변경 Masterdbs 추가 Agent2s \t 변경을 추가 인덱스 이름은 현재 1masterdb 및 기타 에이전트 테이블 INDEX가 Agent1s \t 변경이 추가되어 다른 사용자 기준이다 \t Add <- 복사, 내 관리 페이지 –

+0

"테이블은 사용자 기반"입니다 : 그 자체로는 별개의 모델을 보증하지 않습니다 - 단지'user'에 외래 키를 추가하십시오 ("user"가 모델 일 경우 - 그 외 그것을 하드 코딩 된 int 또는 char 필드로 만든다. "사용자"를 어떤 식 으로든 식별하는 가치). 그리고 "다른"이라는 말은 "필드와 메소드의 공통 세트와 사용자 별 필드 또는 메소드 추가"(사용자마다 특정 코드를 작성해야 함을 의미 함)를 의미한다면 공통 부분은 하나의 기본 앱에 있어야합니다 추상적 또는 구체적인 모델로), 사용자 별 맞춤 설정은 사용자 별 앱에서 이루어져야합니다. –