我是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多个子类别。 “子类别”将是需要填充类别字段的内容。