Django:表格和初始数据

时间:2018-07-17 13:41:45

标签: django

为了显示带有{{ form.initial.ticket_reference }}的ticket_reference,请在forms.py中包含字段ticket_reference。虽然我可以通过forms.HiddenInput()隐藏该字段,但现在我想知道这是否是“保存”?用户不应该能够更改该隐藏字段,但是目前,我认为,一些有知识的人将能够更改此隐藏字段数据,因此它是ticket_id。您之前是否遇到过类似的问题?

.html文件

   <form method="post">
        {% csrf_token %}
        {{ formset.management_form }}

        {% for form in formset %}

            <div class="card mt-5">
                <div class="card-header">
                    Ticket ref: {{ form.initial.ticket_reference }}
                </div>
                <div class="card-body">
                    <div class="form-row">
                        <div class="form-group col-md-6">
                            <label for="inputAddress">{% trans "First name" %}</label>
                            {{ form.first_name }}
                            [...]

forms.py

class AssignAttendeeForm(forms.ModelForm):

    class Meta:
        model = Attendee
        fields = (
            'ticket_reference',
            'first_name',
            'last_name',
            'company_name',
            'email',
        )

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['ticket_reference'].widget = forms.HiddenInput()

1 个答案:

答案 0 :(得分:0)

您可以将字段的disabled属性设置为True

def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.fields['ticket_reference'].widget = forms.HiddenInput()
    self.fields['ticket_reference'].disabled = True