- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在制作一个表单,其中我将多对多关系显示为复选框。现在我知道如何将一个类添加到单个字段,但如何将一个类添加到多对多字段的每个复选框?有 3 个可能的类,每个复选框应该有 1-3 个数字,就像在数据库中一样,这样我以后就可以使用 JS。
这是我的表格:
class PersonForm(ModelForm):
year_range = range(1996, 1920, -1)
person_password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control'}))
person_birthdate = forms.DateField(widget=SelectDateWidget(years=year_range, attrs={'class': 'form-control'}))
person_password.label = 'Passwort'
person_birthdate.label = 'Geburtsdatum'
confirm_password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control'}))
class Meta:
widgets = {'person_interests': forms.CheckboxSelectMultiple,
'person_psycho': forms.HiddenInput}
model = Person
这是我需要类的复选框模型:
class Interest(models.Model):
interest_id = models.AutoField(primary_key=True)
interest_name = models.CharField(max_length=100)
interest_kind = models.ForeignKey(KindOfInterest)
interest_weight = models.IntegerField()
def __unicode__(self):
return self.interest_name
据我所知,我不能只在表单中使用 attrs={'class': self.id}
。那么我如何以一种看起来仍然不错并且不需要 30 行代码的方式访问这些数据呢? (我需要的数据是 interest_kind = models.ForeignKey(KindOfInterest)
这是一个外键,但我认为它没有任何区别)
最佳答案
您可能需要添加一个自定义类来扩展 Django 的 CheckboxSelectMultiple
,它可用于 M2M 关系。您将在以下位置找到它:django.forms.widgets
。在该类中,有一个您可以覆盖的 render
方法。
例子:
class BootstrapCheckboxSelectMultiple(CheckboxSelectMultiple):
"""Form widget that supports Bootstrap's markup requirements"""
def render(self, name, value, attrs=None, choices=()):
if value is None:
value = []
has_id = attrs and 'id' in attrs
final_attrs = self.build_attrs(attrs, name=name)
output = []
# Normalize to strings
str_values = set([force_unicode(v) for v in value])
for i, (option_value, option_label) in enumerate(chain(self.choices,
choices)):
# If an ID attribute was given, add a numeric index as a suffix,
# so that the checkboxes don't all have the same ID attribute.
# Should be able to pass in additional widget attributes to
# the checkbox renderer here...
if has_id:
final_attrs = dict(final_attrs, id='{}_{}'.format(attrs['id'], i))
label_for = u' for="{}"'.format(final_attrs['id'])
else:
label_for = ''
cb = CheckboxInput(final_attrs,
check_test=lambda value: value in str_values)
option_value = force_unicode(option_value)
rendered_cb = cb.render(name, option_value)
option_label = conditional_escape(force_unicode(option_label))
output.append(u'<label{} class="checkbox">{} {}</label>'.format(
label_for, rendered_cb, option_label))
return mark_safe(u'\n'.join(output))
然后为您的字段指定类:
class PersonForm(ModelForm):
...
class Meta:
widgets = {'person_interests': BootstrapCheckboxSelectMultiple,
'person_psycho': forms.HiddenInput}
model = Person
当然,你可以随意命名类。希望对您有所帮助。
关于python - 将 css 类从数据库添加到 manytomany 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22629874/
经过大量搜索但没有成功后,我决定在这里提出我的问题,所以我将首先举一个例子来说明问题。 我有 4 个类(class) A - B - C - D我在 A 和 B 之间有一个名为 A_B 的多对多关系(
该应用程序允许用户选择某些关键字(我们监控 TwitterStream) 每个关键字都包含包含其关键字的推文 ID 列表。 public class Keyword extends Model { @
我有 2 个实体:User 和 UsersList。 @Entity @Table(name = "USERS") public class User { @Id @Generated
嘿,我有一个关于人际关系的问题。 我希望用户有友谊。所以一个用户可以成为另一个用户的 friend 。我假设我需要通过 Friendship 表使用 ManyToManyField。但我无法让它工作。
我需要让帖子接受我需要的尽可能多的语言,所以我有两个模型 post和 language在后模型中: public function languages(){ return $this->bel
在我的一个模型中,我有一个属于多条配置的类别字段。 我想知道如何在模板中获得以下输出。 第 1 类、第 2 类、第 3 类和第 4 类 所以基本上用逗号分隔每个类别,除了最后一个用“和”替换 最佳答案
我有一个用于 User 和 House 的多对多表,称为 user_house。我不想只添加两列:user_id 和 house_id,而是添加 3 列:例如,action、created_at、up
我正在做一个食品卡车 API,只是为了学习 spring-boot。在做的过程中,遇到了关于注释 @Manytomany 如何工作的问题。 因为这个项目只是为了学习我想使用Google CLoud F
我有一个ManyToMany链接和一个链接三个对象的外键。 [A]>-----[C] A 可以属于多个 B,反之亦然。但是,A 只能属于具有同一父对象 C 的 B 对象。 我正在尝试在模型的 clea
如果我有两个模型与直通模型具有多对多关系,我如何从该“直通”表中获取数据。 class Bike(models.Model): nickname = models.CharField(max_l
我已经处理我的用户 - 角色 - 映射问题很长一段时间了,但我目前陷入这个问题: 调用 init 方法失败;嵌套异常是 org.hibernate.AnnotationException:使用 @On
我在坚持方面遇到了问题。我有一个膳食类(class),其中有产品列表。在 Product 类中是一个 Meals 列表——@ManyToMany 关系。 当我尝试保存它时,编译器想要保存每个产品,但随
我正在学习 Spring JPA,我从将对象映射到表开始。我对 OneToOne 和 OneToMany 关系没有任何问题,但我不太明白为什么我无法保留与 ManyToMany 关系相关的对象。我有一
我在 MySQL 中创建了表:role tabel 、 object_label 和 role_object_label (链接表) 我定义了@ManyToMany,但出现异常。我的代码有什么问题?
我有一个包含多个延迟初始化集合的类,其中包括 OneToMany 和 ManyToMany。 ManyToMany 关系是单向的,因此 Expert 类没有 Project 集合。 @OneToMan
我阅读了很多关于这个问题的链接: How to save a django model with a manyToMany Through relationship, AND regular many
我已经实现了一个多图像上传方法,但我想知道使用哪些字段/小部件能够将图像 ID 与表单一起传递。 在填写表单时异步添加图像,并且在提交时,这些图像将被分配给表单正在添加/编辑的对象。我怎样才能传递这个
我遇到了一个尚未解决的问题。 环境: MySQL 5 操作系统 hibernate 4.1 Spring 3.1 Spring Data JPA 我有两个处于多对多关系的实体。为此,我使用带有外键的联
我有两个实体 Post 和 Tags 这个实体有 ManyToMany 的关系,很多帖子有很多标签,很多标签有很多帖子,并且有实体类别我有一个类别的很多帖子,我需要创建 Action 来查找类别的帖子
我的类(class)类(class) @Entity public class Course { @Column @Id private String courseCode;
我是一名优秀的程序员,十分优秀!