标签: django-widget

Django:如何在表单上的输入字段中添加任意html属性?

我有一个输入字段,使用如下模板呈现:

<div class="field">
   {{ form.city }}
</div>
Run Code Online (Sandbox Code Playgroud)

其呈现为:

<div class="field">
    <input id="id_city" type="text" name="city" maxlength="100" />
</div>
Run Code Online (Sandbox Code Playgroud)

现在假设我想autocomplete="off"为渲染的输入元素添加一个属性,我该怎么做?或onclick="xyz()"class="my-special-css-class"

html django django-templates django-forms django-widget

98
推荐指数
4
解决办法
7万
查看次数

Django Admin:仅为一个模型字段使用自定义小部件

我的模型中有一个DateTimeField字段.我想将它显示为Django管理站点中的复选框小部件.为此,我创建了一个自定义表单小部件.但是,我不知道如何将此自定义窗口小部件用于此字段.

Django文档解释了如何使用自定义窗口小部件的所有特定类型的字段:

class StopAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.DateTimeField: {'widget': ApproveStopWidget }
    }
Run Code Online (Sandbox Code Playgroud)

但这并不够精细.我想只为一个字段更改它.

python django django-forms django-admin django-widget

58
推荐指数
4
解决办法
4万
查看次数

How do I use Django's MultiWidget?

The documentation is a bit lacking with respect to this feature.

from django import forms

class TwoInputWidget(forms.MultiWidget):
    """An example widget which concatenates two text inputs with a space"""
    def __init__(self, attrs=None):
        widgets = [forms.TextInput, forms.TextInput]
Run Code Online (Sandbox Code Playgroud)

我可以看到我需要创建一个带有其他小部件列表的"小部件"属性,但之后它会得到一个小福尔摩斯.

有人请向我解释如何使用MultiWidget小部件吗?

django django-widget django-multiwidget

45
推荐指数
1
解决办法
2万
查看次数

如何更改ModelForm中所有Django日期字段的默认小部件?

给出一组典型的模型:

# Application A
from django.db import models
class TypicalModelA(models.Model):
    the_date = models.DateField()

 # Application B
from django.db import models
class TypicalModelB(models.Model):
    another_date = models.DateField()

...
Run Code Online (Sandbox Code Playgroud)

如何将所有 DateFields 的默认小部件更改为自定义MyDateWidget?

我问,因为我希望我的应用程序有一个jQueryUI datepicker用于输入日期.

我考虑过一个自定义字段,它使用我的自定义小部件扩展django.db.models.DateField.这是实施这种全面改变的最佳方式吗?这样的改变需要专门将一个特殊的MyDateField导入到每个模型中,这是一个劳动密集型,容易出现开发人员错误(即一些模型.DateField将会通过),在我看来似乎是不必要的重复工作.另一方面,我不喜欢修改可以被认为是规范版本的模型.DateField.

感谢思想和投入.

django jquery widget django-forms django-widget

39
推荐指数
3
解决办法
2万
查看次数

在Django Admin中过滤ManyToMany框

我有一个与另一个对象有多对多关系的对象.
在Django Admin中,这会在多个选择框中生成一个很长的列表.

我想过滤ManyToMany关系,因此我只获取客户选择的City中可用的类别.

这可能吗?我是否必须为它创建一个小部件?如果是这样 - 我如何将行为从标准的ManyToMany字段复制到它,因为我也想要filter_horizo​​ntal函数.

这些是我的简化模型:

class City(models.Model):
    name = models.CharField(max_length=200)


class Category(models.Model):
    name = models.CharField(max_length=200)
    available_in = models.ManyToManyField(City)


class Customer(models.Model):
    name = models.CharField(max_length=200)
    city = models.ForeignKey(City)
    categories = models.ManyToManyField(Category)
Run Code Online (Sandbox Code Playgroud)

django many-to-many django-forms django-admin django-widget

34
推荐指数
3
解决办法
3万
查看次数

Django:管理员:在管理员中更改字段的小部件

我有一个类似于布尔值的模型:

class TagCat(models.Model):
    by_admin = models.BooleanField(default=True) 
Run Code Online (Sandbox Code Playgroud)

这在admin中显示为一个复选框.

  1. 我如何在管理员中将其用作单选按钮?
  2. 另外,如何在admin中始终使用某个选定值?
  3. 此外,当非管理员用户添加a时,我希望默认值相反TagCat.这个字段应该对他隐藏.

谁能告诉我怎么做?Django文档似乎没有详细说明.

django boolean field django-admin django-widget

23
推荐指数
3
解决办法
3万
查看次数

Django:国家下拉列表?

我有一份地址信息表.其中一个字段是地址国家/地区.目前这只是一个文本框.我想要一个下拉列表(ISO 3166国家).我是一个django新手,所以我还没有使用过Django Select小部件.有什么好办法呢?

在某个地方对文件中的选项进行硬编码?把它们放在数据库中?在模板中?

django country django-forms django-widget drop-down-menu

19
推荐指数
6
解决办法
3万
查看次数

Django子类化multiwidget - 使用自定义multiwidget在帖子上重建日期

所以我的django书又回到了大学,我正在努力解决这个问题.

我的子类django.forms.widgets.MultiWidget是这样的:

class DateSelectorWidget(widgets.MultiWidget):
    def __init__(self, attrs=None, dt=None, mode=0):  
        if dt is not None:
            self.datepos = dt
        else:
            self.datepos = date.today()    

        # bits of python to create days, months, years
        # example below, the rest snipped for neatness.

        years = [(year, year) for year in year_digits]

        _widgets = (
            widgets.Select(attrs=attrs, choices=days), 
            widgets.Select(attrs=attrs, choices=months),
            widgets.Select(attrs=attrs, choices=years),
            )
        super(DateSelectorWidget, self).__init__(_widgets, attrs)

    def decompress(self, value):
        if value:
            return [value.day, value.month, value.year]
        return [None, None, None]

    def format_output(self, rendered_widgets):
        return u''.join(rendered_widgets)
Run Code Online (Sandbox Code Playgroud)

这给了我一个漂亮的日期选择字段,如下所示: …

python django django-widget django-multiwidget

16
推荐指数
1
解决办法
2934
查看次数

如何使用jQuery UI Datepicker作为Django小部件?

我的一些Django 1.3模型具有DateField属性.生成表单时,我想使用jQuery UI Datepicker而不是纯文本字段.我知道我可以创建新的小部件,但我不明白如何.另外,我不确定是否已经为Django做了这样的事情(我用Google搜索,没有机会).

如何创建一个Django Widget,我可以在jQuery UI Datepicker的多个模型(和页面)中重用它?

python django jquery django-widget

13
推荐指数
2
解决办法
1万
查看次数

覆盖Django小部件的默认模板

我想覆盖Django(2.01)小部件模板,因为我需要为每个输入,标签添加类,并以不同的方式定位它们

app
 - templates
 - app 
    - django
       - forms
           - widgets
             - input.html
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 要么

app
 - templates
   - django
      - forms
          - widgets
             - input.html
Run Code Online (Sandbox Code Playgroud)

或模板项目目录:

- templates
   - django
      - forms
          - widgets
             - input.html
Run Code Online (Sandbox Code Playgroud)

它们都不起作用(即使我这是在文档中推荐的方式,也是我在stackoverflow上看到的答案),它仍然从默认加载.

作为一般的小部件的模板,我宁愿把他们的模板项目目录,但是从我的芦苇默认情况下,小部件安装的应用程序只搜索.

django django-templates django-widget

10
推荐指数
1
解决办法
1089
查看次数