创建模型表格后,您可以使用类似的方法获取下拉列表
def generate_random(n):
for i in range(n):
yield random.randint(1,100)
print([x for x in generate_random(10)])
或者您可以根据需要使用其他小部件widget = forms.CheckboxSelectMultiple
class CourseForm(forms.ModelForm):
subjects = forms.ModelMultipleChoiceField(
queryset=Subject.objects.all(),required=True,)
class Meta:
model = Course
fields = [......,subjects]
添加创建视图以创建类似于以下内容的课程
<form method="post" action="">
<div>
{% csrf_token %}
{{ form }}
<input type="submit" class="btn btn-primary" id="submit" value="Save">
</div>
</form>
,
在这里希望这有助于您在查询多对多字段时丢失.all()。您还没有深入了解多对多字段的实际名称,因此尝试在循环上打印对象。
示例视图:
def tester(request):
tes = Test.objects.get(id=1)
testlist = tes.category.all()
context = {
'test': testlist,}
return render(request,'core/t.html',context)
示例循环:
{% for item in test %}
<p>- {{item.cat}}</p>
{% endfor %}
示例模型:
class cats(models.Model):
cat = models.CharField(max_length=10,)
class Test(models.Model):
name = models.CharField(max_length=10,)
category = models.ManyToManyField(cats)
嵌套循环示例:
{% for item in item_list %}
<h2>{{ item.name }}</h2>
<ul>
{% for sub in item.subjects.all %}
<li><a href="#" id="">{{ sub.name }}</a></li>
{% endfor %}
</ul>
{% endfor %}
本文链接:https://www.f2er.com/3091565.html