让我们想象一下这个模型:
class ScribPart(models.Model):
name = models.CharField(max_length=50, unique=True)
text = models.TextField()
Run Code Online (Sandbox Code Playgroud)
我想将一个特定的类附加到该字段text并调用特定的js文件.这样管理页面就像:
...
<script type="text/javascript" src="/static/js/mymarkup.js"></script>
...
<textarea id="id_text" name="text" class="mymarkup"></textarea>
...
Run Code Online (Sandbox Code Playgroud)
如何使用窗口小部件和/或自定义管理表单执行此操作?
在django管理员更改表单中选择外键时,我正在尝试添加一个href,可以查看添加记录的加号旁边的记录.
我试图让href渲染的是我将管理员def渲染复制到我自己的自定义窗口小部件文件中并将其添加到子类中并将其子类化:
widgets.py
class RelatedFieldWidgetWrapperLink(RelatedFieldWidgetWrapper):
def render(self, name, value, *args, **kwargs):
rel_to = self.rel.to
info = (rel_to._meta.app_label, rel_to._meta.object_name.lower())
try:
related_url = reverse('admin:%s_%s_add' % info, current_app=self.admin_site.name)
except NoReverseMatch:
info = (self.admin_site.root_path, rel_to._meta.app_label, rel_to._meta.object_name.lower())
related_url = '%s%s/%s/add/' % info
self.widget.choices = self.choices
output = [self.widget.render(name, value, *args, **kwargs)]
if self.can_add_related:
# TODO: "id_" is hard-coded here. This should instead use the correct
# API to determine the ID dynamically.
output.append(u'<a href="%s" class="add-another" id="add_id_%s" onclick="return showAddAnotherPopup(this);"> ' % \
(related_url, name))
output.append(u'<img src="%simg/admin/icon_addlink.gif" …Run Code Online (Sandbox Code Playgroud) 我已经创建了这个小部件
class DateTimeWidget(forms.TextInput):
attr = {'class': 'datetimepicker'}
class Media:
js = ('js/jquery-ui-timepicker-addon.js',)
Run Code Online (Sandbox Code Playgroud)
然后我在我的表格上使用它
class SessionForm(forms.ModelForm):
class Meta:
model = Session
def __init__(self, *args, **kwargs):
super(SessionForm, self).__init__(*args, **kwargs)
self.fields['start_time'].widget = DateTimeWidget()
self.fields['end_time'].widget = DateTimeWidget()
Run Code Online (Sandbox Code Playgroud)
没有 cssclass应用于我的字段(我希望datetimepicker应用于两者start_time& end_time)。
我想我放attr错了位置。我应该在哪里指定它?
我有一个profile_picture=ImageField字段设置为初始值的表单。它正在使用ClearableFileInput小部件。我需要在模板中自定义表单,所以我不能简单地使用{{ form.profile_picture}}. 如何拆分字段元素并获得如下所示的内容:
{{ with picture=form.profile_picture }}
{{ picture.label_tag }}
<a href="{{ picture.url }}">
<img src="{{ picture.url }}">
</a>
{{ picture.clear-picture }}
Run Code Online (Sandbox Code Playgroud)
{{ picture.clear-picture }}应该在哪里生成复选框以删除旧图片
我正在尝试将一个名为autocomplete的类添加到我的一个select中.
class MyForm(ModelForm):
class Meta:
model = MyModel
exclude = ['user']
def __init__(self, user, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['specie'].queryset = Specie.objects.all(attrs={'class':'autocomplete'})
Run Code Online (Sandbox Code Playgroud)
根据上面的代码我得到 all() got an unexpected keyword argument 'attrs'
我想将django表单widget radioselect渲染到表而不是ul列表中.第一行中有标签,第二行下面有单选按钮.每个按钮一个单元格.例如
-------------------------------
| label 1 | label 2 | label 3 |
-------------------------------
| O | O | O |
-------------------------------
Run Code Online (Sandbox Code Playgroud)
我查看了默认的selectradio小部件,但渲染函数看起来很复杂,调用许多不同的类来完成渲染的每个部分.
有没有人有任何如何做到这一点或可以提供简单解决方案的例子?
我有一个Django表单字段,其中包含一个由两个TextInput组成的MultiWidget.
在模板中呈现表单时,有一个方便的表示法
{{ formname.fieldname }}
Run Code Online (Sandbox Code Playgroud)
用于渲染单个字段.当我将它用于具有MultiWidget的字段时,它将显示两个HTML输入元素.是否会略微修改仅显示第一个HTML输入元素的符号?({{ formname.fieldname.0 }}不起作用.)
我在我的项目中使用 django_filters,其中之一是 DateFromToRangeFilter。此过滤器在您的模板中生成两个输入字段,象征性地 - 'From' 和 'To'。
为这些字段设置类似的属性没有问题。例如:
end = django_filters.DateFromToRangeFilter(
widget=django_filters.widgets.RangeWidget(
attrs={'placeholder': 'yyyy-mm-dd'}))
Run Code Online (Sandbox Code Playgroud)
但我无法理解如何设置不同的占位符(或每个字段的任何其他属性)。就像字段“从”的“输入开始日期”和字段“到”的“输入完成日期”一样。
有人可以帮忙吗?
我django-stdimage在我的 Django 应用程序中使用它,它工作得很好,唯一的问题是我想从 HTML 模板中删除“当前”字符串、清除复选框和其余装饰。我无法弄清楚如何实现这一目标。
这是我的 StdImageField 声明models.py:
photo = StdImageField(upload_to=join('img', 'agents'),
variations={'thumbnail': (100, 100, True)}, default=None,
null=True, blank=True, )
Run Code Online (Sandbox Code Playgroud)
我已经阅读了几个关于修改 ImageField 小部件以使用该类的 SO 答案,ClearableFileInput但似乎该widget属性不允许作为StdImageField类参数。
有没有办法去除所有这些装饰?
谢谢你。
我需要将此小部件添加到 django UpdateView,
class tlistUpdate(LoginRequiredMixin,UpdateView):
fields = ('title', 'thumbnail', 'content', 'tags')
model = htmlpage
template_name = 'blog/create_form.html'
Run Code Online (Sandbox Code Playgroud)
尝试添加
widgets = {
'content': SummernoteWidget(),
}
Run Code Online (Sandbox Code Playgroud)
和
content = forms.CharField(widget=SummernoteWidget())
Run Code Online (Sandbox Code Playgroud)
但它没有用。
django-widget ×10
django ×9
django-forms ×7
django-admin ×2
python ×2
django-views ×1
forms ×1
html ×1
imagefield ×1