Django 表单前缀与基于类的通用视图

发布于 2024-12-02 16:14:08 字数 231 浏览 0 评论 0原文

如何使用 Django 1.3 中新的基于类的通用视图设置表单前缀关键字?设置前缀可以防止渲染的 HTML 中出现重复的 id。 此处记录了表单 API 。

由于我使用 AJAX 加载了多个不同的表单,因此我遇到了重复标签的问题。

How can I set the form prefix keyword with the new class-based generic views in Django 1.3? Setting the prefix prevents duplicate id in the rendered HTML. This is documented here for the forms API.

Since I have several different forms loaded using AJAX, I am running into problems with duplicate tags.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

知足的幸福 2024-12-09 16:14:08

我看到你的问题了!您正在尝试使用 FormView,它允许您指定 form_class,但不能指定前缀。

我还没有尝试过这个,但我建议子类化 FormView 或您正在使用的任何内容,并覆盖 get_form_kwargs 方法以添加前缀。

您可以执行类似的操作这样:

class MyFormView(FormView):
    form_prefix = None

    def get_form_kwargs(self):
        kwargs = super(FormView, self).get_form_kwargs()
        if self.form_prefix:
            kwargs.update({'prefix': self.form_prefix})
        return kwargs

然后,我想,您将能够将 form_prefix 放入 urlconf 中 MyFormView.as_view 的参数中。

正如我所说,我还没有尝试过这个,但它可能值得一试 - 让我知道它是否有效!

I see your problem! You're trying to use FormView, which lets you specify form_class, but not a prefix.

I haven't tried this, but I suggest subclassing FormView, or whatever you're using, and overriding the get_form_kwargs method to add the prefix in.

You could do something like this:

class MyFormView(FormView):
    form_prefix = None

    def get_form_kwargs(self):
        kwargs = super(FormView, self).get_form_kwargs()
        if self.form_prefix:
            kwargs.update({'prefix': self.form_prefix})
        return kwargs

Then, I think, you'll be able to put form_prefix in the arguments to MyFormView.as_view in your urlconf.

As I say, I haven't tried this, but it might be worth a go - let me know if it works!

听你说爱我 2024-12-09 16:14:08

我在 django 中打开了一张票,附有一个补丁,它修改了 FormMixin,以使 FormView 的行为符合您的意愿。

https://code.djangoproject.com/ticket/18872

I opened a ticket in django, with a patch attached, that modifies FormMixin, in order to make FormView behave like you wish.

https://code.djangoproject.com/ticket/18872

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文