我阅读了以下主题:Django Multiple Choice Field / Checkbox Select Multiple
但是,由于我无法在模板中显示复选框,因此我错过了一些重要的内容。但是,该字段的名称确实出现在模板中,但在字段名称之后,它全部为白色和空白。
奇怪的是,在我读过的帖子中,作者没有写出元组列表。这就是为什么我认为问题可能在于models.py
这是我的models.py
main
forms.py
from django.db import models
from user.models import User
class RegionChoices(models.Model):
REGION_CHOICES = (
('London', 'Londres'),
('Paris', 'Paris'),
('Berlin', 'Berlin'),
)
region = models.CharField(max_length=30, choices=REGION_CHOICES)
def __str__(self):
return self.region
class Offer(models.Model):
publisher = models.ForeignKey(User)
content = models.TextField()
region_choices = models.ManyToManyField(RegionChoices)
def __str__(self):
return self.publisher.username
offer.html
from django import forms
from django.contrib import admin
from django.conf import settings
from offers.models import Offer, RegionChoices
class SendOfferForm(forms.ModelForm):
region_choices = forms.ModelMultipleChoiceField(queryset=RegionChoices.objects.all(), widget=forms.CheckboxSelectMultiple)
class Meta:
model = Offer
exclude = ['publisher']
views.py
<form action="{% url "send_offer" %}" method='POST' class='sendofferform'>
{{ form.errors }}
{{ form.non_field_errors }}
{% csrf_token %}
{{ offerform.as_p }}
</form>
答案 0 :(得分:1)
从您的代码中听起来您想要限制项目可以拥有的区域选择。我认为你应该首先为RegionChoices
创建一个管理员。在那里你可以创建你喜欢的RegionChoices
入口。如果您不确定如何为模型创建管理界面https://docs.djangoproject.com/en/1.8/ref/contrib/admin/
ps:您可能希望在unique=True
的{{1}}字段上执行region
。否则,您可能会意外地创建同一区域的重复条目。
答案 1 :(得分:0)
好的,我意识到我必须在模型RegionChoices中加载数据。 我将数据加载到我网站的管理部分,现在,它完美运行。