簡體   English   中英

Django UpdateView中的表單編輯

[英]Form editing in Django UpdateView

我正在嘗試更改其標簽之類的形式,甚至可能更多。 我正在使用UpdateView的get_form方法來更改表單,但是它不起作用

views.py

class SystemUpdateView(SuccessMessageMixin, PermissionRequiredMixin, UpdateView):
"""CRUD update view for :class:`~.System` objects"""

form_class = SystemForm
model = System
permission_required = 'services.change_system'
success_message = "System '%(name)s' updated successfully."
template_name = 'systems/system_form.html'

# when system edited need to modify accountable_team_history

def form_valid(self, form):

    system = self.get_object()

    if form.instance.accountable_team is not None:
        if system.accountable_team == form.instance.accountable_team:
            pass
        else:
            try:
                old_team_history = system.accountable_team_history.get(end_date__isnull=True)

                old_team_history.end_date = datetime.datetime.now()

                old_team_history.save()
            except AccountableTeamHistory.DoesNotExist:
                pass

            new_history = AccountableTeamHistory(resource=system,
                                         accountable_team=form.instance.accountable_team,
                                         effective_date=datetime.datetime.now())

            system.accountable_team_history.add(new_history)

            system.save()

def get_form(self, form_class=SystemForm):

    form_class.fields['primary_purpose_business_use'].label = "Primary purpose/business use"
    form_class.fields['secondary_purpose_business_uses'].label = "Secondary purpose/business uses"

    return form_class

SystemForm是從forms.py導入的,我不認為get_form方法現在正在做任何事情。 有什么可能是錯的嗎?

您需要實例化form_class的實例並返回它。 請參閱說明文件

def get_form(self, form_class=SystemForm):
    form = form_class()
    form.fields['primary_purpose_business_use'].label = "Primary purpose/business use"
    form.fields['secondary_purpose_business_uses'].label = "Secondary purpose/business uses"

    return form

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM