如何在HTML中填充Django表单字段?

时间:2012-08-15 12:27:58

标签: javascript python django django-models django-templates

我有model.py:

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)

与i相关使用带有user输入隐藏字段的创建Django模型表单。 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').val($('#time').val())

其中id_timestamp是ApplicationForm中timestamp字段的ID。但是我应该如何编写代码,这样我也可以填充ApplicationForm template级别的其余字段。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您可以将SplitDateTimeWidget用于时间戳字段。然后在模板上,您可以通过$('#id_timestamp_0').timepicker();或类似的内容访问时间输入