对于想了解Django:从模板访问ModelMultipleChoiceField中的queryset的读者,本文将是一篇不可错过的文章,我们将详细介绍django默认模板引擎,并且为您提供关于Dja
对于想了解Django:从模板访问ModelMultipleChoiceField中的queryset的读者,本文将是一篇不可错过的文章,我们将详细介绍django默认模板引擎,并且为您提供关于Django - 带有值的 AutoCompleteSelectMultipleField、Django forms 组件里的 ChoiceField、ModelChoiceField 和 ModelMutipleChoiceField 的区别、Django forms组件里的ChoiceField、ModelChoiceField和ModelMutipleChoiceField的区别、Django ModelChoiceField中修改过滤查询集queryset的两种方法分别是什么的有价值信息。
本文目录一览:- Django:从模板访问ModelMultipleChoiceField中的queryset(django默认模板引擎)
- Django - 带有值的 AutoCompleteSelectMultipleField
- Django forms 组件里的 ChoiceField、ModelChoiceField 和 ModelMutipleChoiceField 的区别
- Django forms组件里的ChoiceField、ModelChoiceField和ModelMutipleChoiceField的区别
- Django ModelChoiceField中修改过滤查询集queryset的两种方法分别是什么
Django:从模板访问ModelMultipleChoiceField中的queryset(django默认模板引擎)
我找到了一种解决方法,方法是创建一个template_filter,它使用复选框的值并将对应的对象返回到模板。
template_tags.py
@register.filter(name='get_user')
def get_user(user_id):
user = CustomUser.objects.get(pk=user_id.value)
return user
模板
<form method="post" id="assigned_users_form">
{% csrf_token %}
{{ assigned_users_form.errors }}
{{ assigned_users_form.non_field_errors }}
<div>
{{ assigned_users_form.content.errors }}
{% for user in assigned_users_form.users %}
<div>
{% with customuser=user.data.value|get_user %}
{{user.tag}} {{customuser.first_name }}
{% endwith %}
</div>
{% endfor %}
<br>
<div>
<inputtype="submit" value="Save" name='submit_assigned_users_form'>
</div>
</form>
本质上,这段代码查看复选框小部件迭代(用户)并获取值,将该值传递给模板标记,然后将关联的对象返回到页面。
鉴于您要对每个对象重复查询搜索,而不是一次全部收集它们,所以这不是最佳解决方案。但这是我能想到的最好的方法。
Django - 带有值的 AutoCompleteSelectMultipleField
如何解决Django - 带有值的 AutoCompleteSelectMultipleField?
我正在使用 AutoCompleteSelectMultipleField
中的 ajax_select.fields
并且它工作正常 - 我根据我正在编写的内容获取值,但我希望在我写一些东西之前显示所有值。有没有我遗漏的配置,或者我应该使用不同的配置吗?
此刻我有:
form.fields[''teams''] = AutoCompleteSelectMultipleField(
''master_teams'',plugin_options={
''source'': f"{reverse(''ajax_lookup'',kwargs={''channel'': ''master_teams''})}?game_slug={self.game.slug}"},required=False,help_text="Enter team name",)
在我的查找文件中,我只是过滤我的查询以获取特定数据,我想将它们显示为模板中的下拉列表。谁能给我任何提示如何解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Django forms 组件里的 ChoiceField、ModelChoiceField 和 ModelMutipleChoiceField 的区别
阅读简要
首先我们要明白Django forms组件里的ChoiceField、ModelChoiceField和ModelMutipleChoiceField是继承关系
ChoiceField
1. Django forms组件中ChoiceField字段是对models里choice的渲染
2. choices作用:在数据库中用元组的第一项作为存储的值,在显示时,将元组的第二项作为显示的内容,便于前端使用下拉框
3. 用get_xxxx_display()显示第二项的值
class Authors(models.Model):
name = models.CharField("姓名", max_length=32)
gender = models.SmallIntegerField(choices=((1, "男"), (2, "女")), default=1)
ModelChoiceField
1. Django forms组件中ModelChoiceField字段是对models里Forekey的渲染
2. 在前端渲染为下拉菜单
class Book(models.Model):
title = models.CharField("书名", max_length=32)
publish = models.ForeignKey(to="Publish", on_delete=models.CASCADE, verbose_name="出版社")
ModelMutipleChoiceField
1. Django forms组件中ModelMutipleChoiceField字段是对models里ManyToManyField的渲染
2. 在前端渲染为多选菜单
models.py
class Authors(models.Model):
name = models.CharField("姓名", max_length=32)
age = models.IntegerField("年龄")
gender = models.SmallIntegerField(choices=((1, "男"), (2, "女")), default=1)
def __str__(self):
return self.name
class Book(models.Model):
title = models.CharField("书名", max_length=32)
publish_time = models.DateField()
publish = models.ForeignKey(to="Publish", on_delete=models.CASCADE, verbose_name="出版社")
authors = models.ManyToManyField(to="Authors")
def __str__(self):
return self.title
class Publish(models.Model):
name = models.CharField("出版社名", max_length=32)
address = models.CharField("地址", max_length=32)
def __str__(self):
return self.name
forms.py
from django import forms
class AuthorForm(forms.Form):
name = forms.CharField(label="姓名", max_length=32)
age = forms.IntegerField(label="年龄")
gender = forms.ChoiceField(choices=((1, "男"), (2, "女")))
class BookForm(forms.Form):
title = forms.CharField(label="书名", max_length=32)
publish_time = forms.DateField(label="发行时间")
publish = forms.ModelChoiceField(label="出版社", queryset=Publish.objects.all())
authors = forms.ModelMultipleChoiceField(label="作者", queryset=Authors.objects.all())
别忘记点赞哦! ~.~
原文出处:https://www.cnblogs.com/pungchur/p/11969844.html
Django forms组件里的ChoiceField、ModelChoiceField和ModelMutipleChoiceField的区别
阅读简要
首先我们要明白Django forms组件里的ChoiceField、ModelChoiceField和ModelMutipleChoiceField是继承关系
ChoiceField
1. Django forms组件中ChoiceField字段是对models里choice的渲染
2. choices作用:在数据库中用元组的第一项作为存储的值,在显示时,将元组的第二项作为显示的内容,便于前端使用下拉框
3. 用get_xxxx_display()显示第二项的值
class Authors(models.Model):
name = models.CharField("姓名", max_length=32)
gender = models.SmallIntegerField(choices=((1, "男"), (2, "女")), default=1)
ModelChoiceField
1. Django forms组件中ModelChoiceField字段是对models里Forekey的渲染
2. 在前端渲染为下拉菜单
class Book(models.Model):
title = models.CharField("书名", max_length=32)
publish = models.ForeignKey(to="Publish", on_delete=models.CASCADE, verbose_name="出版社")
ModelMutipleChoiceField
1. Django forms组件中ModelMutipleChoiceField字段是对models里ManyToManyField的渲染
2. 在前端渲染为多选菜单
models.py
class Authors(models.Model):
name = models.CharField("姓名", max_length=32)
age = models.IntegerField("年龄")
gender = models.SmallIntegerField(choices=((1, "男"), (2, "女")), default=1)
def __str__(self):
return self.name
class Book(models.Model):
title = models.CharField("书名", max_length=32)
publish_time = models.DateField()
publish = models.ForeignKey(to="Publish", on_delete=models.CASCADE, verbose_name="出版社")
authors = models.ManyToManyField(to="Authors")
def __str__(self):
return self.title
class Publish(models.Model):
name = models.CharField("出版社名", max_length=32)
address = models.CharField("地址", max_length=32)
def __str__(self):
return self.name
forms.py
from django import forms
class AuthorForm(forms.Form):
name = forms.CharField(label="姓名", max_length=32)
age = forms.IntegerField(label="年龄")
gender = forms.ChoiceField(choices=((1, "男"), (2, "女")))
class BookForm(forms.Form):
title = forms.CharField(label="书名", max_length=32)
publish_time = forms.DateField(label="发行时间")
publish = forms.ModelChoiceField(label="出版社", queryset=Publish.objects.all())
authors = forms.ModelMultipleChoiceField(label="作者", queryset=Authors.objects.all())
别忘记点赞哦! ~.~
原文出处:https://www.cnblogs.com/pungchur/p/11969844.html
Django ModelChoiceField中修改过滤查询集queryset的两种方法分别是什么
本篇文章为大家展示了Django ModelChoiceField中修改过滤查询集 queryset的两种方法分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Django Form类定义中有一个 ModelChoiceField 对应的是Model 的外键,queryset 是返回一个查询集对象
例如,我有一个Form
class BookForm(forms.Form):
books = forms.ModelChoiceField(queryset=Books.objects.all())
这似乎并没有什么问题。
但是我想要传递books的id,就出现了问题。我们可以如下解决。
1、重写init方法并接受新的关键字
def __init__(self,*args,**kwargs):
id = kwargs.pop('id',None)
super(BookForm,self).init(*args,**kwargs)
form = BookForm({'id':1})
2. 在视图中修改queryset对象
form = BookForm()
form.fields['books'].queryset = Books.objects.filter(id=1).all()
如果要设置默认值可以通过{initial={'id':1}的方法进行。
上述内容就是Django ModelChoiceField中修改过滤查询集 queryset的两种方法分别是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注小编行业资讯频道。
关于Django:从模板访问ModelMultipleChoiceField中的queryset和django默认模板引擎的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Django - 带有值的 AutoCompleteSelectMultipleField、Django forms 组件里的 ChoiceField、ModelChoiceField 和 ModelMutipleChoiceField 的区别、Django forms组件里的ChoiceField、ModelChoiceField和ModelMutipleChoiceField的区别、Django ModelChoiceField中修改过滤查询集queryset的两种方法分别是什么等相关内容,可以在本站寻找。
本文标签: