以Django选择的形式在``模型选择''字段中列出各种模型属性

Malonge

型号

from django.db import models

class Sample(models.Model):
    sample_ID = models.CharField(max_length=20)
    sample_name = models.CharField(max_length=30)


    def __unicode__(self):
        return self.sample_ID

    class Meta:
        ordering = ['id']

Forms.py

from django import forms
from chosen import forms as chosenforms
from .models import Sample

class SampleLookupForm(forms.Form):
    Sample_ID = chosenforms.ChosenModelChoiceField(queryset=Sample.objects.all())

class SampleNameLookupForm(forms.Form):
    def __init__(self):
        samples = Sample.objects.all().values_list('sample_name', flat=True)
        sample_tuple = [(i, i) for i in samples]
        self.fields['Sample_Name'] = chosenforms.ChosenChoiceField(sample_tuple)

在这里,我有两种形式,其中一种是我想在下拉菜单中显示所有样品ID。另一个我想显示所有样本名称。

对于样本ID,这很容易,因为我已经定义了unicode方法来返回样本ID。但是,我不知道如何调整模型,窗体或视图以创建一个包含样本名称(即unicode方法返回的模型属性以外的模型属性)的下拉菜单。

如何允许模型选择字段显示除unicode方法中定义的模型属性以外的模型属性?

或者,我应该定义unicode方法,以便根据某些条件返回一个特定的model属性。

我应该提到的是,这里我使用的是django选择的表单,其行为与Django模型表单非常相似,只是具有一些附加功能。

我通过以下代码得到的特定错误消息是:

__init__() takes exactly 1 argument (2 given)
Shang Wang

我不确定您的ChosenModelChoiceField,我假设它是的子类ModelChoiceField,您应该label_from_instance在该字段上覆盖方法:

class BlahChoiceField(chosenforms.ChosenModelChoiceField):
    def label_from_instance(self, obj):
        # return whatever text you want
        return obj.sample_name

然后为定义做:

sample_id = BlahChoiceField(queryset=Sample.objects.all())

django文件

编辑

您的原始代码在正确的路径上,但在此行上的代码是错误的:

self.fields['Sample_Name'] = chosenforms.ChosenChoiceField(sample_tuple)

它应该是:

self.fields['Sample_Name'] = chosenforms.ChosenChoiceField(choices=sample_tuple)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django模型形式如何输出从布尔字段中选择是/否

来自分类Dev

Django模型选择字段-取决于其他字段的选择

来自分类Dev

Django RadioSelect来自模型的选择

来自分类Dev

Django模型-选择相关计数

来自分类Dev

Django模型有多种选择

来自分类Dev

Django模型选择选择,其中填充了其他模型实例中的字段

来自分类Dev

形式::模型绑定Laravel与<选择多个>

来自分类Dev

如何根据模型领域选择形式

来自分类Dev

雄辩模型填充的Laravel形式选择

来自分类Dev

Django模型中多对多字段的过滤器选择

来自分类Dev

如何排除Django模型中的选择字段值?

来自分类Dev

如何在Django中对模型进行“选择”?

来自分类Dev

根据用户选择哪些字段以模型形式显示

来自分类Dev

Rails模型选择字段

来自分类Dev

形式::从Laravel中的数据库模型中选择

来自分类Dev

如何使用其他模型在Django模型中创建选择字段

来自分类Dev

django模型选择对保存的数据无效

来自分类Dev

django模型选择列表-降序输出

来自分类Dev

Django-选择链接到自身的模型

来自分类Dev

在Django中使用模型代替枚举选择

来自分类Dev

Django模型CharField选择与自身冲突

来自分类Dev

Django:在ModelForm上选择父模型的实例

来自分类Dev

Django:从 2 个模型中选择数据

来自分类Dev

Django 在单个查询中选择继承的模型

来自分类Dev

Django模型选择不会因无效选择而引发错误

来自分类Dev

Django:限制或排除元组中用于模型选择的选择

来自分类Dev

选择形式的Django访问对象属性

来自分类Dev

选择形式的Django访问对象属性

来自分类Dev

将Django模型字段选择转换为JSON

Related 相关文章

热门标签

归档