2010-07-25 5 views
0
class SomeModel(models.Model): 
    text = models.TextField() 
    ip = models.IPAddressField() 
    created_on = models.DateTimeField() 
    updated_on = models.DateTimeField() 

사용자가 데이터 제출을위한 '텍스트'필드 위젯 만 표시하려면 어떻게해야할까요? 사용자는 ip, created_on, updated_on의 위젯을 변경할 수 있습니다. 네, 양식의 숨겨진 필드로 추가 할 수 있다는 것을 알고 있지만, 제가 찾고있는 것이 아닙니다.Django는 사용자가 제출하지 않은 데이터를 저장합니다.

폼을 렌더링 할 때 어떻게 필드를 렌더링 할 수 없으며 양식이 게시되고 폼 유효성 검사를 통과 할 때 동적으로 필드를 채우는 것이 더 궁금합니다. 양식을 청소/유효성 검사하는 동안 어떻게 든 IP의 빈 값을, created_on, updated_on 무시할 추측하고있어. request.POST.copy를 사용하여 뷰에서이 작업을 수행하는 방법을 알고 있고 값을 주입했지만 모델 또는 폼에서 가능한지 알고 싶습니다.

답변

2

두 가지 : ModelForms

첫째 :

Class SomeModelForm(ModelForm): 
    class Meta: 
     exclude = ['ip','created_on', 'updated_on'] 

Model Fields API :

class SomeModel(models.Model): 
    text = models.TextField() 
    ip = models.IPAddressField() 
    created_on = models.DateTimeField(auto_now_add=True) 
    updated_on = models.DateTimeField(auto_now=True) 

세 : IP에 대한

, 난 당신이보기에 그것한다고 생각합니다.

관련 문제