Python 如何通过表单向模板显示模型对象?
在我的模型中有一个复杂的结构,我不知道如何将外键链接到同一模板上的多对多字段 一旦看到models.py就更容易解释了:Python 如何通过表单向模板显示模型对象?,python,django,django-models,django-forms,django-templates,Python,Django,Django Models,Django Forms,Django Templates,在我的模型中有一个复杂的结构,我不知道如何将外键链接到同一模板上的多对多字段 一旦看到models.py就更容易解释了: class Font(models.Model): font_name = models.CharField(max_length=100) ... class Background(models.Model): bk_color = models.CharField(max_length=20, blank=True) ... clas
class Font(models.Model):
font_name = models.CharField(max_length=100)
...
class Background(models.Model):
bk_color = models.CharField(max_length=20, blank=True)
...
class FormOne(models.Model):
name = models.CharField(max_length=40)
background = models.ForeignKey(Background, blank=True, null=True)
checkbox = models.ManyToManyField(Font, blank=True)
...
我想对每个字体项执行以下操作
从外键添加背景色(bk_color
)。这里是棘手的部分,这应该在表格上完成。用户无法选择其背景,管理员只能通过无线电选择来定义背景
因此,我希望它的形式,以显示我像这样的背景颜色对每个项目
标题:____________
复选框:
[X]字体名称1-#333
class CustomChoiceField(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return mark_safe('<p class="checkbox-choice" style="%s">%s</p>' % (obj.font_family, obj.font_name))
class FormOneForm(forms.ModelForm):
checkbox = CustomChoiceField(widget=forms.CheckboxSelectMultiple, queryset=Font.objects.all())
background = forms.ModelChoiceFied(widget=forms.RadioSelect, queryset=Background.objects.all(), required=False)
class Meta:
model = FormOne
fields = ['name']
<form action="{% url 'multistepform.views.step1' %}" method="post" enctype='multipart/form-data'>
{% csrf_token %}
...
<div class="checkbox-choice" style="background: ! BACKGROUND COLOR HERE ! ;">
{% for fcheck in form.background %}
<div class="checkbox_id col-lg-3">{{ fcheck }}</div>
{% endfor %}
</div>
<input id="step1" type="submit" value="Submit" autocomplete="off" />
</form>