1

データ テーブルの 1 つで問題が発生しています。テーブルの LinkAction をクリックすると、対応するビューにデータが渡されません。既存のネットワーク レコードを更新することを選択した場合と同じエクスペリエンスが必要です。そこで、[編集] 行アクションをクリックすると、対応するフォームにそのネットワーク データが取り込まれます。私の場合、カスタム ダッシュボード/パネル/タブ/テーブルがあります。そのため、そのテーブル行内の「編集」リンクアクションをクリックすると、フォームが表示されますが、行からのデータは渡されません..ここに私のテーブルとアクション(tables.py)があります:

class UpdateWorkload(tables.LinkAction):
    name = "update"
    verbose_name = _("Edit Workload")
    url = "update"
    classes = ("ajax-modal",)
    icon = "pencil"

class WorkloadsTable(tables.DataTable):
    name = tables.Column("name",
                         verbose_name=_("Name"))
    description = tables.Column("description", verbose_name=_("Description"))
    image = tables.Column("image", verbose_name=_("Image"))
    flavor = tables.Column("flavor", verbose_name=_("Flavor"))

    class Meta:
        name = "workloads_table"
        verbose_name = _("Workloads Table")
        table_actions = (CreateNewWorkload,
                         UpdateWorkload,
                         DeleteWorkload)
        row_actions = (UpdateWorkload, DeleteWorkload)

ここに私の更新ビュー(views.py)があります:

class UpdateView(forms.ModalFormView):
    form_class = project_forms.UpdateWorkload
    template_name = 'update_workload.html'
    context_object_name = 'workload'
    success_url = reverse_lazy('index')

そして、ここに私のフォーム(forms.py)があります:

class UpdateWorkload(forms.SelfHandlingForm):
    name = forms.CharField(max_length="255", label=_("Workload Name"))
    description = forms.CharField(widget=forms.Textarea,
                                  label=_("Description"), required=False)
    image_choices = []
    images = forms.ChoiceField(label=_("Images"), choices=image_choices)
    flavor_choices = []
    flavors = forms.ChoiceField(label=_("Flavors"), choices=flavor_choices)

    def handle(self, request, data):
        try:
            # here we will need to call update on http://127.0.0.1:8000/workloads/ and pass the id
            workload = 0
            msg = _('Workload was successfully updated.')
            messages.success(request, msg)
            # return workload
        except Exception:
            msg = _('Failed to update Workload %s')
            redirect = reverse(self.failure_url)
            exceptions.handle(request, msg, redirect=redirect)

このテーブルとビューから行データをフォームに渡すにはどうすればよいですか?

4

0 に答える 0