2012-08-15 6 views
1

나는 내가 user 입력 숨겨진 필드 장고 모델 양식을 만들 사용하는 model.py:HTML에서 장고 양식 필드를 채우는 방법?

class usercommand(models.Model): 
user = models.ForeignKey(User, blank=False) 
a_field = models.PositiveIntegerField(null=True, blank=True) 
timestamp = models.DateTimeField(blank=True, null=True) 

관련이있다. forms.py:

class ApplicationForm(forms.ModelForm): 
class Meta: 
    model = userCommand 
    widgets = { 
     'user': forms.HiddenInput() 
    } 

당신이 입력을 사용할 세 개의 필드가 있음을 볼 수 있듯이. 하지만 난 views.py의 사용자 필드를 작성 :

def views_method(request, object_id): 
if request.method == 'POST': 
    form = ApplicationForm(request.POST) 
    if form.is_valid(): 
     form_inst = form.save(commit=False) 
     form_inst.user = request.user 
     form_inst.save(); 
     return HttpResponseRedirect(reverse('user_list')) 
else: 
    form = ApplicationForm() 

extra_context = { 
    'form':ApplicaitonForm(initial={'user': request.user.pk}) 
} 
return direct_to_template(request, 'template/remote.html', 
          extra_context=extra_context) 

지금 난에 사용되는 내 remote.html :

<form action="" method="POST"> 
{{ form.as_p }} 
<input type="submit" value="{% trans "Add " %}" /> 
</form> 

내가 jQuery를 작성 다음 선택기를 사용하여 템플릿 수준에서 타임 스탬프 필드를 채울 필요가있는 무엇 :

<input class="time" type="text" name="start" id="start" /> 
$('input.time').timepicker(); 

하지만 이해할 수 없습니다. 어떻게해야합니까? 내가 {{form.as_p}}을 사용하고 있기 때문입니다. 이 Jquery 코드로 froms timestamp 필드를 채우는 방법은 무엇입니까? 내가 잘못 아니에요 경우

그때 우리는 다음과 같은 코드로이 작업을 수행 할 수 있습니다 id_timestamp가 ApplicationForm에서 timestamp 필드의 ID입니다

$('#id_timestamp').val($('#time').val()) 

. 하지만 어떻게 코드를 작성해야합니까? ApplicationForm의 나머지 필드에 template 레벨을 채울 수 있습니다.

+0

같은 $('#id_timestamp_0').timepicker(); 또는 무언가에 의해 시간 입력에 액세서 수 있습니다. timepicker()' –

+0

@ TimmyO'Mahony, 예, $ ('# id_timestamp')로 할 수 있습니다. #id_timestamp는 ApplicationForm 클래스의 timestamp 필드의 ID입니다. 내 장고 양식에 뜨겁게 사용하지 않는 것은 무엇입니까? –

+0

왜 다른 필드에서 타임 피커를 실행 한 다음 결과를 복사하고 있습니까? 양식의 시간 필드에서 timepicker를 직접 실행하는 것이 가장 좋은 이유는 무엇입니까? 위젯이 반환 한 시간을'DateTimeField'와 호환되는 형식으로 변환하는 방법을 모른다는 문제가 있습니까? 그렇지 않으면 문제를 이해할 것이라고 생각하지 않습니다. –

답변

2
<form action="" method="POST"> 
{{ form.as_p }} 
<input type="submit" value="{% trans "Add " %}" /> 
</form> 
<script> 
$(document).ready(function(){ 
    $('#id_timestamp').timepicker(); 
}); 
</script> 
+0

답장을 보내 주셔서 감사합니다, 만약 내가 잘못 아니에요 그럼 또한 Jquery 라이브러리 경로를 추가해야합니까? –

+0

날짜/시간 선택기를 사용하려면 예, jquery 라이브러리 및 jquery UI가 필요합니다. http://jqueryui.com/demos/datepicker/ –

+1

이것은 다른 날짜/시간 선택기 라이브러리입니다. http :// /trentrichardson.com/examples/timepicker/ –

0

타임 스탬프 입력란에 SplitDateTimeWidget을 사용할 수 있습니다. `$ ('#의 id_timestamp') : 만약 내가 제대로 이해하고 그런 다음 템플릿에 당신은 당신이 바로 실제 시간 필드에 시간 선택기를 시작해야, 그

관련 문제