gpt4 book ai didi

Django 模型形式 : search filter many to many field widget

转载 作者:行者123 更新时间:2023-12-04 14:48:56 25 4
gpt4 key购买 nike

我正在使用这个模型:

class Sample(models.Model):
id_sample = models.AutoField(primary_key=True)
name = models.CharField(unique=True, max_length=20)
sample_id_sex = models.ForeignKey(Sex, on_delete=models.CASCADE, db_column='id_sex', verbose_name='Sexe')
pools = models.ManyToManyField(Pool, through='SamplePoolIndexCand', through_fields=('sample_id', 'pool_id'), blank=True, verbose_name="Pools")

pools 是来自此模型的 m2m 字段:

class Pool(models.Model):
id_pool = models.AutoField(primary_key=True)
name = models.CharField(unique=True, max_length=50, verbose_name="Pool")
samples = models.ManyToManyField('Sample', through='SamplePoolIndexCand', blank=True, verbose_name="Mostres")

我创建了这个 ModelForm:

class FormulariMostra(ModelForm):
class Meta:
model = Sample
fields = ("name", "sample_id_sex", "pools",)

它工作正常,但问题是 pools 字段可以包含数千个值。这里问了一个类似的问题:Django: Search many to many field while creating object

我尝试了那里推荐的这个小部件 https://github.com/ExoticObjects/django-better-filter-widget但它似乎过时了......

还有其他选择吗?我知道这可以在管理员中完成,但我想在 ModelForm 中完成。

最佳答案

autocomplete_fields 用于:https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.autocomplete_fields

所以你可以这样写:

class FormulariMostra(ModelForm):
class Meta:
model = Sample
autocomplete_fields = ["pools"]
fields = ("name", "sample_id_sex", "pools",)

或者还有raw_id_fields https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.raw_id_fields

关于Django 模型形式 : search filter many to many field widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69397549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com