Django RadioSelect小部件,添加其他信息

问题描述

我有这个简化的模型和表格:

class Books(models.Model):
    name = models.CharField(max_length=500)
    price = models.DecimalField(max_digits=6,decimal_places=2)
    default = models.BooleanField(default=False)

    def __str__(self):
        return self.name



class BookForm(forms.Form):

    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)

        self.fields['Field'] = forms.ModelChoiceField(queryset=None,empty_label=None,widget=forms.RadioSelect)
        self.fields['Field'].queryset = Books.objects.all()
        self.fields['Field'].initial = Books.objects.filter(default=True).first()

这将产生一个RadioSelect-Form,如下所示:

(x) Book1
( ) Book2
( ) Book3

我的问题是,如何在RadioSelect表单中添加价格,使其可见。 它应该出现在书名之后,最好还是以其他字体出现,这是我在引导程序类(例如“ text-primary”)上设置的(这不是强制性的)

(x) Book1 (10 €)
( ) Book2 (20 €)
( ) Book3 (30 €)

我知道我可以在模型中返回名称和价格,例如

class Books(models.Model):
    name = models.CharField(max_length=500)
    price = models.DecimalField(max_digits=6,decimal_places=2)
    default = models.BooleanField(default=False)

    def __str__(self):
        return '%s (%s €)' % (self.value,str(self.price))

但是由于其他原因,我无法做到这一点。我只需要返回名字。还有其他方法吗?

我什至阅读了django-crispy-forms,但找不到解决方法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)