如何在编辑表单中呈现下拉列表而不是输入文本框

时间:2019-03-11 10:08:45

标签: django django-forms

我是Django和Python的新手(大约两个星期)。我正在使用基于类的视图来创建表单:

class ClassifiedCreateView(CreateView):
    model = Listing
    fields = ['title', 'description', 'price', 'picture', 'shipping','category']
    template_name = 'listing/create.html'

    def form_valid(self, form):
        form.instance.user = self.request.user
        return super().form_valid(form)

这可以很好地输出表单,但是我面临的问题是类别显示为文本框(应有),但是我想使用类似下拉菜单的方式来获取信息进入数据库之类。

<select name="category">
<option value="categoryA">CategoryA</option>
<option value="categoryB">CategoryB</option>
</select>

我的models.py文件。

class Listing(models.Model):
    picture = models.ImageField(default='default.jpg',upload_to='classified_pics')
    list_date = models.DateField(auto_now_add=True)
    category = models.CharField(max_length=20)
    title = models.CharField(max_length=80)
    description = models.TextField(default='Please include a description.')
    price = models.DecimalField(max_digits=6, decimal_places=2, default=0.00)
    shipping = models.BooleanField()
    user = models.ForeignKey(User, on_delete=models.CASCADE)


    def __str__(self):
        return f'{self.user.username} Classifieds Listing'

    def get_absolute_url(self):
        return reverse('classified-details', kwargs={'pk': self.pk})

只要我可以预设类别类别,我随时可以进行任何更改。 到完成时,我将拥有大约10个类别,每个类别包含10多个子类别。 “子类别”将是需要填充类别字段的内容。

0 个答案:

没有答案